案例分析题
阅读以下软件架构设计的问题,在答题纸上回答问题。
某软件开发公司欲为某电子商务企业开发一个在线交易平台,支持客户完成网上购物活动中的在线交易。在系统开发之初,企业对该平台提出了如下要求。
1在线交易平台必须在1秒内完成客户的交易请求。2该平台必须保证客户个人信息和交易信息的安全。
3当发生故障时,该平台的平均故障恢复时间必须小于10秒。
4由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行硬件升级必须在6小时内完成。
针对这些要求,该软件开发公司决定采用基于架构的软件开发方法,以架构为核心进行在线交易平台的设计与实现。
1、软件质量属性是影响软件架构设计的重要因素。请用200字以内的文字列举6种不同的软件质量属性名称,并解释其含义。
2、请对该在线交易平台的4个要求进行分析,用300字以内的文字指出每个要求对应何种软件质量属性;并针对每种软件质量属性,各给出2种实现该质量属性的架构设计策略。阅读以下关于结构化软件系统建模的叙述,在答题纸上回答问题。
希赛公司拟开发一个商业情报处理系统,使公司能够针对市场环境的变化及时调整发展战略,以获取最大的商业利益。项目组经过讨论,决定采用结构化分析和设计方法。在系统分析阶段,为了更好地对情报数据处理流程及其与外部角色的关联进行建模,项目组成员分别给出了自己的没计思路。
3小张提出先构建系统流程图(SystemFlowcharts),以便更精确地反映系统的业务处理过程及数据的输入和输出。
4小李提出先构建系统数据流图(DataFlowDiagrams),来展现系统的处理过程和定义业务功能边界,并给出了情报分类子系统的0层和1层数据流图,后者如图所示。
项目组经讨沦确定以数据流图作为本阶段的建模手段。工程师老王详细说明了流程图和数据流图之间的区别与联系,并指出了图的数据流图中存在的错误。
3、流程图和数据流图是软件系统分析设计中常用的两种手段,请用300字以内文字简要说明流程图与数据流图的含义及其区别,并说明项目组为何确定采用数据流图作为建模手段。
4、请分析指出图所示的数据流图中存在的错误及其原因,并针对图的1层数据流图绘制出情报分类
子系统的0层数据流图。
5、高质量的数据流图是可读的、内部一致的并能够准确表示系统需求。请用300字以内文字说明在设计高质量的数据流图时应考虑的三个原则。
阅读以下关于嵌入式软件体系架构的叙述,在答题纸上回答问题。
希赛公司承担了一项宇航嵌入式设备的研制任务。本项目除对硬件设备环境有很高的要求外,还要求支持以下功能:
①设备由多个处理机模块组成,需要时外场可快速更换(即LRM结构);②应用软件应与硬件无关,便于软硬件的升级:
③由于宇航嵌入式设备中要支持不同功能,系统应支持完成不同功能任务间的数据隔离;④宇航设备可靠性要求高,系统要有故障处理能力。
公司在接到此项任务后,进行了反复论证,提出三层栈(TLS)软件总体架构,如图所示,并将软件设计工作交给了李工,要求其在三周内完成软件总体设计工作,给出总体设计方案。
6、用150字以内的文字,说明公司制定的TLS软件架构的层次特点,并针对上述功能需求①~④,说明架构中各层的内涵。
7、在TLS软件架构的基础上,关于选择哪种类型的嵌入式操作系统问题,李工与总工程师发生了严重分歧。李工认为,宇航系统是实时系统,操作系统的处理时间越快越好,隔离意味着以时间作代价,没有必要,建议选择类似于VxWorks5.5的操作系统;总工程师认为,应用软件间隔离是宇航系统安全性要求,宇航系统在选择操作系统时必须考虑这一点,建议选择类似于Linux的操作系统。
请说明两种操作系统的主要差异,完成表中的空白部分,并针对本任务要求,用200字以内的文字说明你选择操作系统的类型和理由。两种操作系统的主要差异VxWorks5.5Linux比较类型操作系统与应用程序处于工作方式①同一存储空间支持多任务(线程)操作②多任务支持实时性③实时系统安全性④⑤标准API支持支持8、故障处理是宇航系统软件设计中极为重要的组成部分。故障处理主要包括故障监视、故障定位、
故障隔离和系统容错(重组)。用150字以内的文字说明嵌入式系统中故障主要分哪几类?并分别给出两种常用的故障滤波算法和容错算法。
阅读以下软件系统架构选择的问题,回答问题。
希赛公司欲开发一个车辆定速巡航控制系统,以确保车辆在不断变化的地形中以固定的速度行驶。图给出了该系统的简化示意图。表描述了各种系统输入的说明。
公司的领域专家对需求进行深入分析后,将系统需求认定为:任何时刻,只要定速巡航控制系统处于工作状态,就要有确定的期望速度,并通过调整引擎油门的设定值来维持期望速度。
在对车辆定速巡航控制系统的架构进行设计时,公司的架构师王工提出采用面向对象的架构风格,而李工则主张采用控制环路的架构风格。在架构评估会议上,专家对这两种方案进行综合评价,最终采用了面向对象和控制环路相结合的混合架构风格。
定速巡航控制系统各种输入的说明输入名称系统开关引擎开关车轮脉冲刹车增/减速恢复速度时钟作用开启/关闭巡航控制系统开启/关闭洗车引擎(引擎开启时,巡航控制系统处于就绪状态)车轮每转一次,相应地发山一次脉冲当刹车被踩下时,定速巡航控制系统会临时恢复到人工控制增加或减慢当前车速(仅在定速巡航控制系统处于开启的状态下可用)恢复原来保持的车速(仅在定速巡航控制系统处于开启的状态下可用)每毫秒定时脉冲9、在实际的软件项目开发中,采用成熟的架构风格是项目成功的保证。请用200字以内的文字说明:什么是软件架构风格;面向对象和控制环路两种架构风格各自的特点。
10、用户需求没有明确给出该系统如何根据输入集合计算输出。请用300字以内的文字针对该系统的增减速功能,分别给出两种架构风格中的主要构件,并详细描述计算过程。
11、实际的软件系统架构通常是多种架构风格的混合,不同的架构风格都有其适合的应用场景。以该系统为例,针对面向对象架构风格和控制环路架构风格,各给出两个适合的应用场景,并简要说明理由。
阅读以下关于信息系统安全性的叙述,回答问题。
某企业根据业务扩张的要求,需要将原有的业务系统扩展到互联网上,建立自己的B2C业务系统,此时系统的安全性成为一个非常重要的设计需求。为此,该企业向软件开发商提出如下要求。
①合法用户可以安全地使用该系统完成业务。②灵活的用户权限管理。
③保护系统数据的安全,不会发生信息泄露和数据损坏。④防止来自于互联网上的各种恶意攻击。
⑤业务系统涉及各种订单和资金的管理,需要防止授权侵犯。
⑥业务系统直接面向最终用户,需要在系统中保留用户使用痕迹,以应对可能的商业诉讼。该软件开发商接受任务后,成立方案设计小组,提出的设计方案是:在原有业务系统的基础上,保留了原业务系统中的认证和访问控制模块;为了防止来自互联网的威胁,增加了防火墙和入侵检测系统。
企业和软件开发商共同组成方案评审会,对该方案进行了评审,各位专家对该方案提出了多条不同意见。李工认为,原业务系统只针对企业内部员工,采用了用户名/密码方式是可以的,但扩展为基于互联网的B2C业务系统后,认证方式过于简单,很可能造成用户身份被盗取:王工认为,防止授权侵犯和保留用户痕迹的要求在方案中没有体现。而刘工则认为,即使是在原有业务系统上的扩展与改造,也必须全面考虑信息系统面临的各种威胁,设计完整的系统安全架构,而不是修修补补。12、信息系统面临的安全威胁多种多样,来自多个方面。请指出信息系统面临哪些方面的安全威胁并分别子以简要拙述。
13、认证是安全系统中不可缺少的环节,请简要描述主要的认证方式,并说明该企业应采用哪种认证方式。
14、请解释授权侵犯的具体含义;针对王工的意见给出相应的解决方案,说明该解决方案的名称、内容和目标。
阅读以下关于软件系统架构选择的说明,回答问题。
希赛公司欲针对Linux操作系统开发一个KWIC(KevWordinContext)检索系统。该系统接收用户输入的查洵关键字,依据字母顺序给出相关帮助文档并根据帮助文档内容进行循环滚动阅读。在对KWIC系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其他方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其他的方法实现这一功能。
在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序-子程序的架构风格,而李工则主张采用管道-过滤器的架构风格。在架构评估会议上,大家从系统的算法变更、功能变更、数据表示变更和性能等方面对这两种方案进行评价,最终采用了李工的方案。
15、在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用200字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。
16、请完成表中的空白部分(用+表示优、-表示差),对王工和李工提出的架构风格进行评价,并指出采用李工方案的原因。
17、规划图是李工给出的架构设计示意图,请将恰当的功能描述填入图中的(1)~(4)。
阅读以下关于软件系统数据架构建模的说明,回答问题。
RMO是一家运动服装制造销售公司,计划在五年时间内将销售区域从华南地区扩展至全国范围。为了扩大信息技术对于未来业务发展的价值,公司邀请咨询顾问帮助他们制定战略信息系统规划。经过评审,咨询顾问给出的战略规划要点之一是建立客户关系支持系统CRSS。RMO公司决定由其技术部成立专门的项目组负责CRSS的开发和维护工作。
项目组在仔细调研和分析系统需求的基础上,确定了基于互联网的CRSS系统架构。但在确定系统数据架构时,张工认为应该采用集中式的数据架构,给出的理由是结构简单、易维护且开发及运行成本低;而刘工建议采用分布式的数据架构,并提出在开发中通过“局部数据库+缓存”的读/写分离结构实现,具有较好的运行性能和可扩展性。
项目组经过集体讨论,考虑到公司的未来发展规划,最终采用了刘工的建议。18、请用300字以内的文字,说明张工和刘工提出的数据架构的基本思想。
19、在刘工建议的基础上,为了避免CRSS系统的单点故障,请用200字以内文字简要说明如何建立CRSS的数据库系统;对于数据的读取、添加、更改和删除操作分别如何实现。
20、RMO公司销售区域将在未来五年大面积扩展,其潜在客户数量也会因此大幅度增加,所以良好的可扩展性是CRSS系统所必需的质量属性。请分别说明在集中式和分布式数据架构下,可以采用哪些方法提升系统的可扩展性。
阅读以下关于汽车电子基础软件架构的说明,回答问题。
某软件公司承担了某项国家重点项目的研制工作,任务重点是参考国外汽车电子发展趋势,开发某汽车公司的企业汽车电子基础软件的架构,逐步实现汽车企业未来的技术发展规划。
该软件公司接收此项任务后,调动全体技术人员深入收集国外相关技术资料,经过多方调研和分析,公司提出遵照国际组织最新推出的AUTOSAR规范,按统筹规划、分步骤实施的原则,实现汽车公司的基础软件架构设计。图中给出了AUTOSAR规范所定义的工作包,图中灰色部分代表本项日工作所包含的内容,即软件架构和基础软件。
21、AUTOSAR规范中要求,汽车电子软件开发流程应尽量满足并发、可多次迭代的特性。为了定义汽车电子的软件开发过程,公司李工和王工分别提出了两种软件开发流程,这两种开发流程如图(图中ECU是指汽车电子中的电予控制单元)所示。请说明李工和王工中谁定义的流程更符合AUTOSAR的规定,并说明理由。
22、1.1项中定义了软件架构和操作系统的要求,图是满足AUTOSAR定义的操作系统各功能模块的层次结构,请说明①~⑤箭头所标的具体操作含义。
23、AUTOSAR是一种开放式架构,用150字以内的文字,说明采用AUTOSAR架构的主要优点,并说明汽车电子ECU覆盖汽车的哪三个领域。
阅读以下关于系统设计与开发工具集成的说明,回答问题。
公司内部采用多种商业/开源的工具进行软件系统设TeleDev是一个大型的电信软件开发公司,
计与开发工作。为了提高系统开发效率,公司管理层决定开发一个分布式的系统设计与开发工具集成框架,将现有的系统设计与开发工具有效集成在一起。集成框架开发小组经过广泛调研,得到了如下核心需求。
24目前使用的系统设计与开发工具的运行平台和开发语言差异较大,集成框架应无缝集成各个工具的功能。
25目前使用的系统设计与开发工具所支持的通信协议和数据格式各不相同,集成框架应实现工具之间的灵活通信和数据格式转换。
26集成框架需要根据实际的开发流程灵活、动态地定义系统开发工具之间的协作关系。27集成框架应能集成一些常用的第三方实用工具,如即时通信,邮件系统等。
集成框架开发小组经过分析与讨论,最终决定采用企业服务总线(ESB.作为集成框架的基础架构。
24、ESB是目前企业级应用集成常用的基础架构。请列举出ESB的4个主要功能,并从集成系统的部署方式、待集成系统之间的耦合程度、集成系统的可扩展性3个方面说明为何采用ESB作为集成框架的基础架构。
25、在ESB基础架构的基础上,请根据题干描述中的4个需求,说明每个需求应该采用何种具体的集成方式或架构风格最为合适。
26、请指出在实现工具之间数据格式的灵活转换时,通常采用的设计模式是什么,并对实现过程进行简要描述。
阅读以下信息系统可靠性问题的说明,回答问题。
某软件公司开发一项基于数据流的软件,其系统的主要功能是对输入数据进行多次分析、处理和加工,生成需要的输出数据。需求方对该系统的软件可靠性要求很高,要求系统能够长时间无故障运行。该公司将该系统设计交给王工负责。王工给出该系统的模块示意图如图所示。王工解释:只要各个模块的可靠度足够高,失效率足够低,则整个软件系统的可靠性是有保证的。
李工对王工的方案提出了异议。李工认为王工的说法有两个问题:第一,即使每个模块的可靠度足够高,但是整个软件系统模块之间全部采用串联,则整个软件系统的可靠度明显下降。假设各个模块的可靠度均为0.99则整个软件系统的可靠度为0.994≈0.96:第二,软件系统模块全部采用串联结构时,一旦某个模块失效,则意味着整个软件系统失效。
李工认为,应该在软件系统中采用冗余技术中的动态冗余或者软件容错的N版本程序设计技术,对容易失效或者非常重要的模块进行冗余设计,将模块之间的串联结构部分变为并联结构,来提高整个软件系统的可靠性。同时,李工给出了采用动态冗余技术后的软件系统模块示意图,如图所示。
刘工建议,李工方案中M1和M4模块没有采用容错设计,但M1和M4发生故障有可能导致严重后果。
因此,可以在M1和M4模块设计上采用检错技术,在软件出现故障后能及时发现并报警,提醒维护人员进行处理。
注:假设各个模块的可靠度均为0.99。
27、在系统可靠性中,可靠度和失效率是两个非常关键的指标,请分别解释其含义。
28、请解释李工提出的动态冗余和N版本程序设计技术,给出图中模块M2采用图动态冗余技术后的可靠度。
请给出采用李工设计方案后整个系统可靠度的计算方法,并计算结果。29、请给出检错技术的优缺点,并说明检测技术常见的实现方式和处理方式。阅读以下关于软件架构评估的说明,回答问题。
某网上购物电子商务公司拟升级正在使用的在线交易系统,以提高用户网上购物在线支付环节的效率和安全性。在系统的需求分析与架构设计阶段,公司提出的需求和关键质量属性场景如下:
(a)正常负载情况下,系统必须在0.5秒钟内对用户的交易请求进行响应;(b)信用卡支付必须保证99.999%的安全性;
(c)对交易请求处理时间的要求将影响系统的数据传输协议和处理过程的设计;(d)网络失效后,系统需要在1.5分钟内发现错误并启用备用系统;(e)需要在20人月内为系统添加一个新的CORBA中间件;
(f)交易过程中涉及的产品介绍视频传输必须保证画面具有600*480的分辨率,20帧/秒的速率;
(g)更改加密的级别将对安全性和性能产生影响;
(h)主站点断电后,需要在3秒钟内将访问请求重定向到备用站点:
(i)假设每秒中用户交易请求的数量是10个,处理请求的时间为30毫秒,则“在1秒钟内完成用户的交易请求”这一要求是可以实现的;
(j)用户信息数据库授权必须保证99.999%名可用;
(k)目前对系统信用卡支付业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性;
(l)更改Web界面接口必须在4人周内完成;
(m)系统需要提供远程调试接口,并支持系统的远程调试。
在对系统需求和质量属性场景进行分析的基础上,系统的架构师给出了三个候选的架构设计方案。公司目前正在组织系统开发的相关人员对系统架构进行评估。
30、在架构评估过程中,质量属性效用树(utilitytree)是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入图中(1)、(2)空白处;并选择题干描述的(a)~(m),填入(3)~(6)空白处,完成该系统的效用树。
31、在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a)~(m)中各选出1个对系统架构风险、敏感点和权衡点最为恰当的描述。
阅读以下关于软件系统数据建模的说明,回答问题。
某软件公司成立项目组为某高校开发一套教职工信息管理系统。与教职工信息相关的数据需求和处理需求如下。
32数据需求:在教职工信息中能够存储学校所有在职的教工和职工信息,包括姓名、所属部门、出生年月、工资编号、工资额和缴税信息;部门信息中包括部门编号、部门名称、部门人数和办公地点信息。
33处理需求:能够根据编制内或外聘教职工的工资编号分别查询其相关信息;每个月的月底统一核发工资,要求系统能够以最快速度查询出教工或者职工所在部门名称、实发工资金额;由于学校人员相对稳定,所以数据变化及维护工作量很少。
项目组王工和李工针对上述应用需求分别给出了所设计的数据模型(如图所示)。王工遵循数据库设计过程,按照第三范式对数据进行优化和调整,所设计的数据模型简单且基本没有数据冗余;而李工设计的数据模型中存在大量数据冗余。
项目组经过分析和讨论,特别是针对数据处理中对数据访问效率的需求,最终选择了李工给出的数据模型设计方案。
32、请用300字以内的文字,说明什么是数据库建模中的反规范化技术,指出采用反规范化技术能获得哪些益处,可能带来哪些问题。
33、请简要叙述常见的反规范化技术有哪些。
34、请分析李工是如何应用反规范化技术来满足教职工信息管理需求的。
阅读以下有关嵌入式系统设计的说明,回答问题。
某公司承接了某机载嵌入式系统的研制任务。该机载嵌入式系统由数据处理模块、大容量模块、信号处理模块、数据交换模块和电源模块等组成。数据处理模块有2个,分别完成数据融合和导航通信任务;大容量模块的主要功能是存储系统数据,同时要记录信号处理模块、数据处理模块的自检测、维护数据,向数据处理模块提供地图数据;信号处理模块的处理器为专用的DSP,接收红外、雷达等前端传感器数据并进行处理,将处理后的有效数据(数据带宽较大)发送给数据处理模块;数据交换模块主要负责系统的数据交换;电源模块主要负责给其他模块供电,电源模块上没有软件。
要求该机载嵌入式系统符合综合化、模块化的设计思想,并考虑系统在生命周期中的可靠性和安全性,以及硬件的可扩展性和软件可升级性,还要求系统通信延迟小,支持多模块上的应用任务同步。35、在设计系统架构时,李工提出了如图所示的系统架构,即模块间的网络通信采用光纤通信(FiberChannel,FC.技术,而王工认为应采用VME总线架构,如图所示。王工的理由是公司多年来基于VME总线技术设计了多个产品,技术成熟,且费用较小。但公司经过评审后,决定采用李工的方案。
请用500字以内的文字,说明VME和FC各自的特点,并针对机载嵌入式系统的要求,指出公司采用李工方案的理由。
36、公司依据ARTNC653标准,设计了满足ARINC653标准的操作系统,该操作系统对系统中可能发
生的模块级、分区级和进程级的错误进行处理,实现了如图所示的系统健康监控机制,请分别将备选答案中的各种错误和健康监控部件填入图中的(1)~(5)。
备选答案:分区健康监控、分区初始化阶段出现的分区配置错误、分区切换时出现的错误、应用进程错误、进程健康监控。
注:ARINC653标准(AvionicsApplicationSoftwareStandardInterface)是美国航空电子工程协会AEEC于1997年为航空民用飞机的模块化综合航空电子系统定义的应用程序接口标准,该标准提出了分区(Partition)的概念以及健康监控(healthmonitoring)机制。分区是应用的一种功能划分,也是操作系统调度的基本单位,严格按预先分配的时间片调度。分区间具有时空隔离特点。分区内的每一执行单元称为进程。
37、为了实现满足ARINC653标准的操作系统的时空分区隔离机制,项目组选择了PowerPC作为数据处理模块的处理器(CPU)。这样,当一个分区出现故障时,不会蔓延到模块中同一处理器的其他分区。请用500字以内的文字,说明如何采用PowerPC实现应用与内核以及诸应用之间的隔离和保护。阅读以下Web应用系统架构设计的说明,回答问题。
某公司拟开发一个市场策略跟踪与分析系统,根据互联网上用户对公司产品信息的访问情况和产品实际销售情况来追踪各种市场策略的效果。其中互联网上用户对公司产品信息的访问情况需要借助两种不同的第三方Web分析软件进行数据采集与统计,并生成不同格式的数据报表;公司产品的实际销售情况则需要通过各个分公司的产品销售电子表格或数据库进行采集与汇总。得到相关数据后,还要对数据进行分析与统计,并通过浏览器以在线的方式向市场策略制定者展示最终的市场策略效果。
在对市场策略跟踪与分析系统的架构进行设计时,公司的架构师王工提出采用面向服务的系统架构,首先将各种待集成的第三方软件和异构数据源统一进行包装,然后将数据访问功能以标准Web服务接口的形式对外暴露,从而支持系统进行数据的分析与处理,前端则采CSS等技术实现浏览器数据的渲染与展示。架构师李工则认为该系统的核心在于数据的定位、汇聚与转换,更适合采用面向资源的架构,即首先为每种数据元素确定地址,然后将各种数据格式统一转换为JSON格式,通过对JSON数据的组合支持数据的分析与处理任务,处理结果经过渲染后在浏览器的环境中进行展示。在架构评估会议上,专家对这两种方案进行综合评价,最终采用了李工的方案。
38、请根据题干描述,对市场策略跟踪与分析系统的数据源特征与数据操作方式进行分析,完成表中的(1)~(3),并用200字以内的文字说明李工方案的优点。系统数据源特征与数据源特征数据操作法数据操作方式数据形态数据访问实时性数据源类型互联网用户访问信(1)(3)非实时息产品销售信息电子表格与数据库(2)只读39、请从数据获取方式、数据交互方式和数据访问的上下文无关性三个方面对王工和李工的方案进
行比较,并用500字以内的文字说明为什么没有采用王工的方案。
40、表现层状态转换(REST)是面向资源架构的核心思想,请用200字以内的文字解释什么是REST,并指出在REST中将哪三种关注点进行分离。
阅读以下关于信息系统安全性的说明,回答问题。
某大型跨国企业的IT部门一年前基于SOA(Service-OrientedArchitecture)对企业原有的多个信息系统进行了集成,实现了原有各系统之间的互连互通,搭建了支撑企业完整业务流程运作的统一信息系统平台。随着集成后系统的投入运行,IT部门发现在满足企业正常业务运作要求的同时,系统也暴露出明显的安全性缺陷,并在近期出现了企业敏感业务数据泄露及系统核心业务功能非授权访问等严重安全事件。针对这一情况,企业决定由IT部门成立专门的项目组负责提高现有系统的安全性。
项目组在仔细调研和分析了系统现有安全性问题的基础上,决定首先为在网络中传输的数据提供机密性(Confidentiality)与完整性(Integrity)保障,同时为系统核心业务功能的访问提供访问控制机制,以保证只有授权用户才能使用特定功能。
经过分析和讨论,项目组决定采用加密技术为网络中传输的数据提供机密性与完整性保障。但在确定具体访问控制机制时,张工认为应该采用传统的强制访问控制(MandatoryAccess
Control)机制,而王工则建议采用基于角色的访问控制(Role-BasedAccessControl)与可扩展访问控制标记语言(eXtensibleAccessControlMarkupLangtlage,XACML)相结合的机制。项目组经过集体讨论,最终采用了王工的方案。
41、请用400字以内的文字,分别针对采用对称加密策略与公钥加密策略,说明如何利用加密技术为在网络中传输的数据提供机密性与完整性保障。
42、请用300字以内的文字,从授权的可管理性、细粒度访问控制的支持和对分布式环境的支持三个方面指出项目组采用王工方案的原因。
43、图中给出了基于XACML的授权决策中心的基本结构以及一次典型授权决策的执行过程,请分别将备选答案填入图中的(1)~(4)。
备选答案:策略管理点(PAP)、策略执行点(PEP)、策略信息点(PIP)、策略决策点(PDP)阅读以下关于软件架构风格的说明,回答问题。
某软件公司为其新推出的字处理软件设计了一种脚本语言,专门用于开发该字处理软件的附加功能插件。为了提高该语言的编程效率,公司组织软件工具开发部门为脚本语言研制一套集成开发环境。软件工具开发部门根据字处理软件的特点,对集成开发环境进行了需求分析,总结出以下三项核心需求。
44集成开发环境需要提供对脚本语言的编辑、语法检查、解释、执行和调试等功能的支持,并要实现各种功能的灵活组合、配置与替换。
45集成开发环境需要提供一组可视化的编程界面,用户通过对界面元素拖拽和代码填充的方式就可以完成功能插件核心业务流程的编写与组织。
46在代码调试功能方面,集成开发环境需要实现在脚本语言编辑界面中的代码自动定位功能。具体来说,在调试过程中,编辑界面需要响应调试断点命中事件,并自动跳转到当前断点处所对应的代码。
针对上述需求,软件工具开发部门对集成开发环境的架构进行分析与设计,王工认为该集成开发环境应该采用管道-过滤器的架构风格实现,李工则认为该集成开发环境应该采用以数据存储为中心的架构风格来实现。公司组织专家对王工和李工的方案进行了评审,最终采用了李工的方案。44、请用200字以内的文字解释什么是软件架构风格,并从集成开发环境与用户的交互方式、集成开发环境的扩展性、集成开发环境的数据管理三个方面说明为什么最终采用了李工的设计方案。
45、在对软件系统架构进行设计时,要对架构需求进行分析,针对特定需求选择最合适的架构风格,因此实际的软件系统通常会混合多种软件架构风格。请对核心需求进行分析,说明为了满足需求(2)和(3),分别应采用何种架构风格,并概要说明采用相应架构风格后的架构设计过程。阅读以下关于分布式系统设计的说明,回答问题。
某软件公司拟开发一套电信领域的分布式系统,该系统后台多个功能模块同时运行时的计算负
载较大,且需要控制不同的特定电信硬件设备,由于硬件体积和I/O端口冲突等原因,这些设备需要分散安装在多个不同的计算机系统中。该系统上线运行后将为企业最终用户提供7×24小时的不问断服务,而用户的单次接入服务往往需要后台多个模块共同协作完成。基于上述原因,该系统后台软件模块需分布在局域网内的多台计算机上。
项目组决定基于ISO的开放分布进程(ODP)规范来进行系统架构的设计与开发,近期项目组召开了多次会议,对架构设计阶段的关键问题进行了讨论分析。
46、ODP从5个标准的视点组织分析系统的架构,这些视点描述了同一系统的不同重要方面,请根据图中不同视点所关注的核心内容,将备选的架构视点填入图中的(1)~(5)。
备选答案:技术选择架构、企业业务架构、分布式工程架构、计算接口架构、逻辑信息架构47、在技术选择架构规划时,王工认为系统应基于现有分布式基础设施(分布式中间件)来构建,因为这样可以充分利用现有基础设施提供的各种支撑,在更短时间内构造出质量更高的分布式系统;而李工则认为可基于基本的进程间通信机制自主开发系统的支撑平台,这样可以避免对特定中间件的依赖,项目组经过认真讨论,最终采用了王工的方案。请用400字以内文字,从构件管理支持、互操作支持以及公共服务支持三个方面说明现有分布式基础设施为构建分布式系统所提供的基本支撑。48、由于系统后台模块的分布式特性,后台分布式对象之间的互操作机制是需要考虑的核心问题之一。如图所示是当前分布式基础设施中支持分布式对象互操作的基本机制,请将相应部件名称填入图中(1)~(2);基于图给出的结构,用300字以内文字说明完成一次分布式对象调用的详细步骤。
请详细阅读有关嵌入式软件架构设计方面的描述,回答问题。
在嵌入式系统中,软件采用开放式架构已成为新的发展趋势。软件架构设计的优劣将直接影响软件的重用和移植能力。
某软件公司主要从事宇航领域的嵌入式软件研发工作。经过二十多年的发展,其软件产品已被广泛应用于各种航天飞行器中。该公司积累了众多成熟软件,但由于当初没有充分考虑软件的架构,原有软件无法被再利用,为适应嵌入式软件技术发展需要,该公司决策层决定成立宇航嵌入式软件开放式架构研究小组,为公司完成开放式架构的定义与设计,确保公司软件资源能得到充分利用。
研究小组查阅了大量的国外资料和标准,最终将研究重点集中在了SAEAS4893《通用开放式架构(GOA.框架》标准,图中给出了GOA定义的架构图。
49、请用300字以内的文字简要说明开放式架构的四个基本特点。
50、如图所示,GOA框架规定了软件、硬件和接口的结构,以在不同应用领域中实现系统功能。GOA框架规定了一组接口,其重要特点是建立了关键组件及组件间接口关系,这些接口的确定可用于支持软件的可移植性和可升级性,以满足功能增加和技术更新的要求。除操作系统服务与扩展操作系统之间的接口(3X)外,即直接接口(iD(i=1,GOA将其他接口分为两类:2,3,…))和逻辑接口(iL(i=1,2,3,…)),直接接口定义了信息传输方式;逻辑接口定义了对等数据交换的要求,逻辑接口没有定义真正的信息传输方式,其传输发生在一个或多个直接接口。根据图所标注的接口在框架中的具体位置,请填写表的(1)~(8)处空白。GOA中的接口与功能接口功能描述接口名称序号实现处理机之间有效的通信方式,操作系统服务和操范例3X作系统扩展服务之间的接口1(1)4D一组对等人物理资源之间数据交换接口/协议的要2求组成的接口,它能实现通(2)信链路物理资源访问(物理资源逻辑接口)一组软件(操作系统)访问硬件资源的服务接口。该组3(3)接口为软件与硬件资源之间定义了一个边界(系统45678服务到资源访问直接接门)提供在任何处理机中应用软件与其他应用软件之间的接口。也包括不同系统的(4)应用软件之间的接口(应用逻辑接口)(5)1D(6)3L根据对等信息/数据交换要求。在同一处理机或不同处理机之间,资源访问服务(7)之间的对等操作服务的接口(资源访问服务逻辑接口)由服务于硬件指令机制和寄存器使用的资源访问服(8)务组成的接口(资源服务到物理资源直接接口)阅读以下关于面向对象系统建模的叙述,回答问题。
某软件企业为影音产品销售公司W开发一套在线销售系统,以提升服务的质量和效率。项目组经过讨沦后决定采用面向对象方法开发该系统。在设计建模阶段需要满足以下设计要求。
51W公司经常进行促销活动。根据不同的条件(如订单总额、商品数量、产品种类等),公司可以提供百分比折扣或现金减免等多种促销方式供提交订单的用户选择。实现每种促销活动的代码量很大,且会随促销策略的不同经常修改。系统设汁中需要考虑现有的促销和新的促销,而不用经常重写控制器类代码。
52该在线销售系统需要计算每个订单的税率,不同商品的税率及计算方式会有所区别。所以W公司决定在系统中直接调用不同商品供应商提供的税率计算类,但每个供应商的类提供了不同的调用方法。系统设计中需要考虑如果公司更换了供应商,应该尽可能少地在系统中修改或创建新类。
项目组架构师决定采用设计模式来满足上述设计要求,并确定从当前已经熟练掌握的设计模式中进行选择,这些设计模式包括:适配器模式(Adapter)、构造器模式(Builder)、命令模式(Command)、外观模式(Facade)、中介模式(Mediator)、原型模式(Prototype)、代理模式(Proxy)、状态模式(State)和策略模式(Strategy)等。
51、设计模式按照其应用模式可以分为三类:创建型、结构型和行为型,请用200字以内文字说明三者的作用。
52、请将项目组已经掌握的设计模式按照其作用分别归类到创建型、结构型和行为型模式中。53、针对题目中所提出的设计要求(1)和(2),项目组应该分别选择何种设计模式?请分别用200字以内文字说明具体的解决方案。
请详细阅读有关数据架构方面的描述,回答问题。
某软件公司欲开发一个基于Web2.0的大型社交网络系统。就该系统的数据架构而言,李工决定采用公司熟悉的数据架构,使用通用的商用关系型数据库,系统内部数据采用中央集中方式存储。
该系统投入使用后,初期用户数量少,系统运行平稳。但6个月后,用户数出现了爆炸式增长,系统暴露出诸多问题,集中表现在以下几方面:
54用户执行读/写操作时,响应时间均变得很慢;
55随着系统功能的扩充,原有数据格式发生变化,又出现新的数据格式,维护困难;56数据容量很快超过系统原有的设计上限,数据库扩容困难;
57软件系统不断出现宕机,整个系统可用性较差。
经过多次会议讨论,公司的王工建议采用NoSQL数据库来替代关系数据库,以解决上述问题。但李工指出NoSQL数据库出现时间不长,在使用上可能存在风险。公司技术人员对NoSQL数据库产品进行了认真测试,最终决定采用NoSQL数据库来替代现有的数据库系统。54、分别解释产生问题(1)~(4)的原因。
55、请针对问题(1)~(4),分别指出NoSQL数据库的哪些特点促使公司最终采用了NoSQL数据库。56、请指出该系统采用NoSQL数据库时可能存在的问题。
答案:
案例分析题
1、常见的软件质量属性有多种,例如性能(Performance)、可用性(Availability)、可靠性(Reliability)、健壮性(Robustness)、安全性(Security)、可修改性(Modification)、可变性(Changeability)、易用性(Usability)、可测试性(Testability)、功能性(Functionality)和互操作性(Inter-operation)等。
这些质量属性的具体含义如下。
①性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。
②可用性是系统能够正常运行的时间比例。
③可靠性是指软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。
④健壮性是指在处理或环境中,系统能够承受压力或变更的能力。
⑤安全性是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
⑥可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。⑦可变性是指体系结构经扩充或变更成为新体系结构的能力。⑧易用性是衡量用户使用一个软件产品完成指定任务的难易程度。
⑨可测试性是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
⑩功能性是系统所能完成所期望工作的能力。
(11)互操作性是指系统与外界或系统与系统之间的相互作用能力。
[解析]这是一道软件质量特性的试题,软件质量特性是软件架构以及软件架构设计师的一个重要关注点。因为如果在软件架构的设计阶段不考虑软件质量特性,则产生的软件质量隐患在后期的设计与开发中是无法弥补的。
软件质量特性主要包括以下几个方面。①功能性:系统所能完成期望工作的能力。
②性能:系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。
③可用性:系统能够正常运行的时间比例。
④可靠性:软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。
⑤健壮性:在处理或环境中,系统能够承受压力或变更的能力。
⑥安全性:系统在向合法用户提供服务的同时,能够阻止非授权用户使用的企图或拒绝服务的能力。
⑦可修改性:能够快速地以较高的性能价格比对系统进行变更的能力。
⑧可变性:体系结构经扩充或变更成为新体系结构的能力。
⑨易用性:衡量用户使用一个软件产品完成指定任务的难易程度。
⑩可测试性:软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
(11)互操作性:系统与外界或系统与系统之间的相互作用能力。问题1是纯概念题,从以上的属性中任选6个作答即可。
问题2难度稍大,需要结合题目给出的案例,来分析系统有哪些质量属性的需求,同时需要给出实现该质量属性的策略。下面逐一分析题目给出的场景。
(1)在线交易平台必须在1秒内完成客户的交易请求。该要求主要对应性能,可以采用的架构设计策略有增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)。
(2)该平台必须严格保证客户个人信息和交易信息的保密性和安全性。该要求主要对应安全性,可以采用的架构设计策略有抵御攻击(授权、认证和限制访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计等。
(3)当发生故障时,该平台的平均故障恢复时间必须小于10秒。该要求主要对应可用性,可以采用的架构设计策略有Ping/Echo、心跳、异常和主动冗余等。
(4)由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行平台升级必须在6小时内完成。该要求主要对应可修改性,可以采用的架构设计策略有软件模块泛化、限制模块之间通信、使用中介和延迟绑定等。2、在线交易平台必须在1秒内完成客户的交易请求。该要求主要对应性能,可以采用的架构设计策略有增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)。
(2)该平台必须严格保证客户个人信息和交易信息的保密性和安全性。该要求主要对应安全性,可以采用的架构设计策略有抵御攻击(授权、认证和限制访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计等。
(3)当发生故障时,该平台的平均故障恢复时间必须小于10秒。该要求主要对应可用性,可以采用的架构设计策略有Ping/Echo、心跳、异常和主动冗余等。
(4)由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行平台升级必须在6小时内完成。该要求主要对应可修改性,可以采用的架构设计策略有软件模块泛化、限制模块之间通信、使用中介和延迟绑定等。
3、数据流图作为一种图形化工具,用来说明业务处理过程、系统边界内所包含的功能和系统中的数据流。
流程图以图形化的方式展示应用程序从数据输入开始到获得输出为止的逻辑过程,描述处理过程的控制流。
两者的区别如下。
①数据流图中的处理过程可并行;流程图在某个时间点只能处于一个处理过程。②数据流图展现系统的数据流;流程图展现系统的控制流。
③数据流图展现全局的处理过程,过程之间遵循不同的计时标准;流程图中处理过程遵循一致的计时标准。
④数据流图适用于系统分析中的逻辑建模阶段;流程图适用于系统设计中的物理建模阶段。[解析]这是一道流程图与数据流图的试题,主要考查系统流程图与数据流图的区别、以及数据流图的基本应用。
主要考查系统流程图与数据流图的区别。系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等)。系统流程图表达的是部件的信息流程,而不是表示对信息进行加工处理的控制过程。
数据流图就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
①数据流图的主要作用
数据流图从数据传递和加工的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在它们之间传递的情况,来说明系统所完成的功能。具体来说,数据流图的主要作用如下。
·数据流图是理解和表达用户需求的工具,是需求分析的手段。由于数据流图简明易懂,不需要任何计算机专业知识就可以理解它,因此,系统分析师可以通过数据流图与用户进行交流。
·数据流图概括地描述了系统的内部逻辑过程,是需求分析结果的表达工具,也是系统设计的重要参考资料,是系统设计的起点。
·数据流图作为一个存档的文字材料,是进一步修改和充实开发计划的依据。②数据流图的基本符号
在数据流图中,通常会出现4种基本符号,分别是数据流、加工、数据存储和外部实体(数据源及数据终点)。数据流是具有名字和流向的数据,在数据流图中用标有名字的箭头表示。加工是对数据流的变换,一般用圆圈表示。数据存储是可访问的存储信息,一般用直线段表示。外部实体是位于被建模的系统之外的信息生产者或消费者,是不能由计算机处理的成分,它们分别表明数据处理过程的数据来源及数据去向,用标有名字的方框表示。
③数据流图的层次
结构化方法的思路是依赖于数据流图进行自顶而下的分析。这是因为系统通常比较复杂,很难在一张图上就将所有的数据流和加工描述清楚。因此,数据流图提供一种表现系统高层和低层概念的机制。也就是先绘制一张较高层次的数据流图,然后在此基础上,对其中的加工进行分解,分解成为若干个独立的、低层次的、详细的数据流图,而且可以这样逐一地分解下去,直至系统被清晰地描述出来。
·顶层图。顶层图是描述系统最高层结构的数据流图,它的特点是将整个待开发的系统表示为一个加工,将所有的外部实体和进出系统的数据流都画在一张图中。例如,下图就是一个顶层图的实例,只不过在绘制时做了一些处理,使得它看上去更加直观易懂。
顶层图用来描述系统有什么输入和输出数据流,与哪些外部实体直接相关,可以把整个系统的范围勾画出来。
当完成了顶层图的建模之后,就可以在此基础上进行进一步的分解。对图进行分解,·逐层分解。
在对原有流程了解的基础上,可以得到下图。
上图是在图的基础上做的第一次分解,而在图中只有一个加工,那就是系统本身,可以将其编号为0。因此,对顶层图进行的分解,其实就是对这个编号为0的加工进行更细化的描述,在这里引入了新的加工和数据存储,为了能够区分其位于的级别,在这个层次上的加工将以1、2、3为序列进行编号。
正是由于这是对加工0的分解,因此也称为0层图。可以根据需要对0层图上的加工进行类似的再分解,称之为1层图,在1层图中引入的新加工,其编号规则就是1.1、1.2、…,以及2.1、2.2、…,依次类推,直到完成分析工作。
④如何画数据流图
数据流图的绘制是一个自项向下、由外到里的过程,通常按照以下几个步骤进行。
·画系统的输入和输出:在图的边缘标出系统的输入数据流和输出数据流。这一步骤其实是决定研究的内容和系统的范围。在画的时候,可以先将尽可能多的数据流画出来,然后再删除多余的,增加遗漏的。
·画数据流图的内部:将系统的输入、输出用一系列的处理连接起来,可以从输入数据流画向输出数据流,也可以从中间画出去。
·为每一个数据流命名:命名的好坏与数据流图的可理解性密切相关,应避免使用空洞的名字。·为加工命名:使用动宾短语为每个加工命名。
每画好一张数据流图,就需要进行检查和修改,检查和修改的原则如下。
·数据流图中的所有图形符号只限于前述4种基本图形元素,图上每个元素都必须有名字。
·每个加工至少有一个输入数据流和一个输出数据流,而且要保持数据守恒。也就是,一个加工的所有输出数据流中的数据必须能从该加工的输入流中直接获得,或者通过该加工能产生的数据。一个加工的输出数据流不应与输入数据流同名,即使它们的组成完全相同。
·在数据流图中,需按层给加工编号。编号表明该加工处在哪一层,以及上下层的父图与子图的对应关系。
·规定任何一个数据流图子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致,即父图与子图的平衡。也就是说,父图中的某加工的输入/输出流必须与它的所有子图的输入/输出数据流在数量上和名字上相同。值得注意的是,如果父图中的一个输入(输出)数据流对应于子图中的几个输入(输出)数据流,而子图中组成这些数据流的数据项的全体正好是父图中的这一个数据流,那么它们仍然算是平衡的。
每个数据存储必须既有读的数据流,又有写的数据流。但是在某张子图中,·在整套数据流图中,
可能只有读没有写,或者只有写没有读。
·可以在数据流图中加入物质流,帮助用户理解数据流图,但不可夹带控制流。
数据流图和流程图的区别主要表现在:数据流图用于系统的逻辑建模,而流程图用于物理建模。
数据流图展现的是全局处理过程,而流程图往往是局部的处理过程。流程图是顺序执行的处理过程,即一个时间点,通常是处理一项事务,而数据流图的处理过程是并行的,多个处理流程同时进行。数据流图展现的是系统数据流,而流程图展现的是系统控制流。4、如图所示的数据流图中存在的错误有以下4种。
(1)“分类训练”加工:只有输入没有输出,产生数据黑洞。(2)“分类处理”加工:有输出没有输入,无中生有。
(3)“规则文件”数据流:外部实体没有经过加工处理,直接进入数据存储。(4)“配置信息”数据流:外部实体之间没有加工处理,存在直接数据流。针对图的1层数据流图绘制出情报分类子系统的O层数据流图如图所示。
是找错误数据流以及根据低层数据流图来画高层数据流图。
在找错误数据流时,首先需要了解错误数据流的类型:一类是语法错误,包括外部实体之间、数据存储之间或外部实体与数据存储之间不经过加工而存在直接数据流;另一类是逻辑错误,包括数据黑洞(只有输入没有产生输出)、灰洞(输入不足以产生输出)和无输入。
·“分类训练”加工属于数据黑洞错误:·“分类处理”加工属于无输入错误;
·“规则文件”和“配置信息”数据流属于语法错误。
对于复杂系统,一般采用分层数据流图逐步细化系统的内部处理逻辑。0层数据流图是1层数据流图更高级别的抽象。“分类训练”和“分类处理”加工属于内部加工,“分类规则”数据流属于内部数据流,抽象为“情报分类子系统”加工。其中,“样本数据”、“规则文件”和“配置信息”为输入数据流;“分类结果”为输出数据流。
5、高质量数据流图设计时应考虑的三个原则如下。
(1)复杂性最小化原则。数据流图分层结构就是把信息划分为小的且相对独立的一大批子集例子,这样就可以单独考查每一个数据流图。如果要了解某个过程更加详细的信息,可以跳转到该过程的下一层;如果要知道一个数据流图如何与其他数据流图相关联,可以跳转到上一层的数据流图进行考查。
(2)接口最小化原则。接口最小化是复杂性最小化的一种具体规则。在设计模式时,应使得模型中各个元素之间的接口数或连接数最小化。
(3)数据流一致性原则。一个过程和它的过程分解在数据流内容中是否有差别?是否存在有数据流出但没有相应的数据流入的加工?是否存在有数据流入但没有相应的数据流出的加工?属于纯概念题,高质量的数据流图首先要求满足数据流一致性要求,即数据流的输入/输出应该匹配,输入数据的信息量足以产生输出数据,所有的输出数据都能够从输入数据中找到数据的来源。对于复杂性系统,可以采用数据流图分层结构将系统的复杂性逐步分解降低,以提高数据流图的有效性。高质量的数据流图应该简化复杂的接口,最小化接口或连接的数目。6、TLS结构框架的主要特点如下。
①应用软件仅与操作系统服务相关,不直接操作硬件。
②操作系统通过模块支持原软件访问硬件,可与具体硬件无关。③模块支持层将硬件抽象成标准操作。
④通过三层栈的划分可实现硬件的快速更改与升级,应用软件的升级不会引起硬件的变更。TLS结构框架的各层内涵如下。
①应用层主要完成宇航设备的具体工作,由多个功能任务组成,各功能任务间的隔离由操作系统层实现。
②操作系统层实现应用软件与硬件的隔离,为应用软件提供更加丰富的计算机资源服务。操作系统为应用软件提供标准的API接口(如POSIX),确保了应用软件的可升级性。
③模块支持层为操作系统管理硬件资源提供统一管理方法,用一种抽象的标准接口实现软件与硬件的无关性,达到硬件的升级要求,便于硬件的外场快速更换。
[解析]这是一道嵌入式系统架构试题,题目以宇航嵌入式设备的研制为背景。考查软件需求分析、软件架构、框架设计、可靠性设计以及与嵌入式操作系统相关的一些知识。题目所述的项目中提出了一种新型的架构TLS,由于是项目中提出的架构,大家必然对这种架构感觉比较陌生,但从图中,可以很明显地看到,架构是分层的结构。这也就回到了我们熟悉的技术框架之内了。
要求说明“公司制定的TLS软件架构的层次特点”,这需要从层次型架构的特点以及题目已给出的说明两方面着手进行说明。总的来说,层次型架构的特点有:下层为上层提供服务,层次与层次之间有着良好的独立性,结合题目的说明,具体说明如下。
①应用软件仅与操作系统服务相关,不直接操作硬件。
②操作系统通过模块支持原软件访问硬件,可与具体硬件无关。③模块支持层将硬件抽象成标准操作。
④通过三层栈的划分可实现硬件的快速更改与升级,应用软件的升级不会引起硬件的变更。基于这种思想,TLS结构框架实现了宇航设备中软件功能服务,这样考生就可以完整地叙述各层软件的设计内涵如下。
①应用层主要完成宇航设备的具体工作,由多个功能任务组成,各功能任务间的隔离由操作系统层实现。
②操作系统层实现应用软件与硬件的隔离,为应用软件提供更加丰富的计算机资源服务。操作系统为应用软件提供标准的API接口(如:POSIX),确保了应用软件的可升级性。
③模块支持层为操作系统管理硬件资源提供统一管理方法,用一种抽象的标准接口实现软件与硬件的无关性,达到硬件的升级要求,便于硬件的外场快速更换。7、两种操作系统的差异如表所示。两种操作系统的主要差异VxWorks5.5Linux比较类型①操作系统与应用程序处工作方式于不同存储空间多任务支持②支持多进程、多线程操作实时性③硬实时系统安全性④任务间无隔离保护⑤支持进程间隔离保护标准API选择类似于Linux的嵌入式操作系统,理由如下。①Linux操作系统是一种安全性较强的操作系统。内核工作在系统态,应用软件工作在用户态,可以有效地防止应用软件对操作系统的破坏。
②Linux操作系统调度的最小单位是线程,线程归属于进程,进程具有自己独立的资源。进程通过存储器管理部件(MMU)实现多功能应用间隔离。
③嵌入式Linux操作系统支持硬件抽象,可有效地实现TLS结构,并将硬件抽象与操作系统分离,可方便实现硬件的外场快速更换。
考查嵌入式操作系统的相关知识。简单地说,实时系统可以看成对外部事件能够及时响应的系统。这种系统最重要的特征是时间性,也就是实时性,实时系统的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生这些结果的时间。在现实世界中,并非所有的嵌入式系统都具有实时特性,所有的实时系统也不一定都是嵌入式的。但这两种系统并不互相排斥,兼有这两种系统特性的系统称为实时嵌入式系统。
嵌入式操作系统(EmbeddedOperatingSystem,EOS)是指运行在嵌入式系统上,支持嵌入式应用程序的操作系统,是用于控制和管理嵌入式系统中的硬件和软件资源、提供系统服务的软件集合。EOS是嵌入式软件的一个重要组成部分,它的出现提高了嵌入式软件开发的效率和应用软件的可移植性,有力地推动了嵌入式系统的发展。
①嵌入式操作系统的特点
与通用操作系统相比,嵌入式操作系统主要有以下特点。
·微型化:嵌入式操作系统的运行平台不是通用计算机,而是嵌入式计算机系统。这类系统一般没有大容量的内存,几乎没有外存,因此,嵌入式操作系统必须做得小巧,以尽量少占用系统资源。为了提高系统的执行速度和系统的可靠性,嵌入式系统中的软件一般都固化在存储器芯片中,而不是存放在磁盘等载体中。
·代码质量高:在大多数应用中,存储空间依然是宝贵的资源,这就要求程序代码的质量要高,代码要尽量精简。
·专业化:嵌入式系统的硬件平台多种多样,处理器的更新速度快,每种处理器都是针对不同的应用领域而进行专门设计。因此,嵌入式操作系统要有很好的适应性和移植性,还要支持多种开发平台。
·实时性强:嵌入式系统广泛应用于过程控制、数据采集、通信、多媒体信息处理等要求实时响应的场合,因此实时性成为嵌入式操作系统的又一特点。
·可裁减、可配置:应用的多样性要求嵌入式操作系统具有较强的适应能力,能够根据应用的特点和具体的要求进行灵活配置和合理裁减,以适应微型化和专业化的要求。
②嵌入式操作系统的分类
嵌入式操作系统的种类繁多,可以从不同角度对其进行分类。从嵌入式操作系统的获得形式上,可以分为商业型和免费型两类。
·商业型。商业型嵌入式操作系统一般功能稳定、可靠,有完善的技术支持、齐全的开发工具和售后服务。如WindRiver公司的VxWorks、pSOS和Palm公司的PalmOS等。但价格昂贵,用户通常得不到系统的源代码。
·免费型。免费型嵌入式操作系统的优势在于价格方面,另外,应用系统开发者可以获得系统源代码,给开发带来了方便。但免费型的操作系统功能简单、技术支持差、系统的稳定性也不够好。典型的代表系统有嵌入式Linux、uC/OS等。
从嵌入式操作系统的实时性上,可以分为实时嵌入式操作系统和非实时嵌入式操作系统两类。·实时嵌入式操作系统(Real-TimeEmbeddedOS,RTEOS)。实时嵌入式操作系统支持实时系统工作,其首要任务是调度一切可利用资源,以满足对外部事件响应的实时时限,其次着眼于提高系统的使用效率。实时嵌入式操作系统主要用在控制、通信等领域。目前,大多数商业嵌入式操作系统都是实时操作系统。
·非实时嵌入式操作系统。这类操作系统不特别关注单个任务响应时限,其平均性能、系统效率和资源利用率一般较高,适合于实时性要求不严格的消费类电子产品,如个人数字助理、机顶盒等。
③如何选择嵌入式操作系统
在选择嵌入式操作系统时,也需要做以下几方面的考虑。
·嵌入式操作系统的功能。根据项目需要的嵌入式操作系统功能来选择嵌入式操作系统产品,要考虑系统支持嵌入式操作系统的全部功能还是部分功能,是否支持文件系统和人机界面,是实时系统还是分时系统,以及系统是否可裁减等因素。
·配套开发工具。有些实时操作系统只支持该系统供应商的开发工具。也就是说,还必须向嵌入式操作系统供应商获取编译器和调试器等;有些嵌入式操作系统使用广泛,且有第三方工具可用,因此,选择的余地比较大。
·嵌入式操作系统的可移植性。嵌入式操作系统到硬件的移植是一个重要的问题,是整个系统能否按期完工的关键因素,因此,要选择那些可移植性程度高的嵌入式操作系统,从而避免嵌入式操作系统难以向硬件移植而带来的种种困难,以加速系统的开发进度。
·嵌入式操作系统的内存需求。均衡考虑是否需要额外RAM或EEPROM来迎合嵌入式操作系统对内存的较大要求。有些嵌入式操作系统对内存的要求是目标相关的,例如,Tornado/VxWorks等,开发人员能按照应用需求分配所需的资源,而不是为嵌入式操作系统分配资源。
·嵌入式操作系统附加软件包。嵌入式操作系统是否包含所需的软件部件,例如,网络协议栈、文件系统和各种常用外设的驱动等。
·嵌入式操作系统的实时性如何。有些嵌入式操作系统只能提供软实时性能,对于需要达到硬实时性能要求的系统就不适用;有些嵌入式操作系统既可满足软实时要求,也能满足硬实时要求,例如,
MSWindowsCE2.0等。
·嵌入式操作系统的灵活性。嵌入式操作系统是否具有可剪裁性,即能否根据实际需要进行系统功能的剪裁。有些嵌入式操作系统具有较强的可剪裁性,例如,嵌入式Linux和ECos等。
④VxWorks和Linux的比较
VxWorks和Linux两个常见的嵌入式操作系统,其特点如表所示。两种操作系统的主要差异VxWorks5.5Linux比较类型操作系统与应用程序处于操作系统与应用程序处于工作方式同一存储空间不同存储空间支持多任务(线程)操作支持多进程、多线程操作多任务支持实时性硬实时系统实时系统安全性任务间无隔离保护支持进程间隔离保护标准API支持支持通过比较,显然选用类似于Linux的嵌入式操作系统适用本题要求。理由包括以下三点。①Linux操作系统是一种安全性较强的操作系统。内核工作在系统态,应用软件工作在用户态(这点是系统安全性要求),可以有效防止应用软件对操作系统的破坏。
②Linux操作系统凋度的最小单位是线程,线程归属于进程,进程具有自己独立的资源。进程通过存储器管理部件(MMU)实现多功能应用问隔离。
③嵌入式Linux操作系统支持硬什抽象,可有效地实现TLS结构,并将硬件抽象与操作系统分离,可方便实现硬件的外场快速更换。
8、①嵌入式系统中故障分为如下几种。
·硬件故障:如CPU、存储器和定时器等。
·应用软件故障:如数值越界、异常和超时等。·操作系统故障:如越权访问、死锁和资源枯竭等。②滤波算法有如下几种。·门限算法。·递减算法。·递增算法。
·周期滤波算法。
③容错算法有如下几种。·N+1备份。·冷备。·温备。·热备。
作为宇航系统的嵌入式设备,硬/软件故障是宇航系统最为关注的内容,根据宇航系统的特点和系统组成,故障一般分为三类,即硬件故障、应用软件故障和操作系统故障,在设计中,应考虑这三类故障的处理方法。硬件故障一般包括CPU运算错误、存储器访问/越界错误、MMU配置错误、定时器计数错误和内总线错误等;应用软件故障一般包括计算越界、除0、溢出和超时等各种异常情况:操作系统故障一般包括越权访问、死锁、资源枯竭、调度超时、配置越界和操作系统异常等。
一般情况下,宇航系统的故障分为瞬态故障和永久故障,瞬态故障是指偶然发生的错误,而永久故障是指发生后不可消失的错误。在容错系统中,故障一般是由瞬态故障向永久故障转变,将鉴别瞬态故障和永久故障的算法称为滤波算法。在嵌入式实时系统中,常用的滤波算法包括门限算法、递减算法、递增算法和周期滤波算法等。
故障鉴别的目的是实现宇航系统的容错与重构。常用的容错算法是N+1备份,冷备、温备和热备。
将故障模块的任务迁移到备份模块运行:N+1备份是指N个通用模块之一的任何一个模块发生故障后,
冷备、温备和热备是三种备份方式,可根据宇航系统的总体备份时间或重要程度安排不同的备份算法。9、软件架构风格是拙述某一类特定应用领域中软件系统的组织方式和惯用方式。
面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象,对象维护自身表示的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完成计算过程。
控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件,通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理想状态。
[解析]软件系统架构风格多种多样,如何根据系统的要求选择合适的架构风格,是系统架构设计师需要掌握的重要技能。
考查概念层面的问题,根据美国卡耐基·梅隆大学软件工程研究所的定义,软件架构风格是描述某一类特定应用领域中软件系统组织方式和惯用方式。
面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象,对象维护自身表示的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完成计算过程。
控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件,通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理想状态。
10、对于系统的增减速功能,采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等构件。
整个计算的主要过程如下。
①司机进行增/减速操作设置期望速度,该期望速度以消息的形式传递给速度计。②速度计通过向车轮和时钟发送消息获取车轮转速和时钟值,得到当前速度。③速度计用来计算当前速度和期望速度的速度差值。
④该差值以消息的形式发送给油门,油门通过速度差值调节自身状态。⑤整个过程在时钟的控制下定期向速度计发送消息,重复执行②~④。
控制环路的架构风格以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。具体的计算过程如下。
①司机进行增/减速操作设置期望速度值。②将设定值置为期望速度值。
③控制器采集车轮脉冲和时钟值,计算出当前速度。
④比较期望速度和当前速度,计算速度差值,控制油门动作。⑤反复执行第③步和第④步。
难度比问题1要大一些。需要根据面向对象的风格特点与控制环路的风格特点,来分析系统功能应如何拆分成构件。
采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等对象。整个计算过程通过对象之间的合理交互完成期望的功能。
控制环路的架构风格将以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。通过不断的反馈机制实现对系统的控制。
11、适合面向对象架构风格的应用场景如下。
①用户刹车,立即退出巡航控制系统。理由:这是一个典型的事件驱动的场景,适合于面向对象风格。
②系统对突发事件的处理,如某些部件失灵等。理由:当发生突发事件时,系统会同时产生数据和事件,这种情况用对象建模较为恰当。
适合面向控制环路架构风格的应用场景如下。
①在达到期望速度后,系统维持恒定速度行驶。理由:这是一个典型的闭环控制的情景,系统需要在外界情况不断发生变化的情况下进行调整,使得系统状态尽可能接近期望状态。
②用户改变期望速度后,系统不断地进行调整,直至到达恒定速度。理由:这是一个闭环控制情景,当用户设定期望速度值后,系统需要在不断获取当前速度和外界条件的情况下对系统状态持续调整,使得系统状态尽可能地接近这个新的期望状态。主要从应用场景的角度比较两种架构风格。面向对象系统比较适合事件驱动的场景,特别是离散突发
事件的处理;而控制环路则适合连续事件的处理,比如维持恒定车速等。
12、信息系统面临的安全威胁来自于物理环境、通信链路、网络系统、操作系统、应用系统以及管理等多个方面。
物理安全威胁是指对系统所用设备的威胁,如自然灾害、电源故障、数据库故障和设备被盗等造成数据丢失或信息泄露。
通信链路安全威胁是指在传输线路上安装窃听装置或对通信链路进行干扰。
网络安全威胁当前主要是指由于因特网的开放性、国际性与无安全管理性,对内部网络形成的严重安全威肋、。
操作系统安全威胁指的是操作系统本身的后门或安全缺陷,如“木马”和“陷阱门”等。
应用系统安全威胁是指对于网络服务或用户业务系统安全的威胁,包括应用系统自身漏洞和受到“木马”的威胁。
管理系统安全威胁指的是人员管理和各种安全管理制度。
[解析]这是一道信息系统安全的试题。对于任何一个系统而言,安全性都是至关重要的,可以说一个系统的安全性如果得不到保障,那么该系统的功能越强大,造成的危害也就越大。
网络威胁是指对网络安全缺陷的潜在利用,这些缺陷可能导致非授权访问、信息泄露、资源耗尽、资源被盗或者被破坏等。网络安全威胁的种类有:窃听、假冒、重放、流量分析、数据完整性破坏、拒绝服务、资源的非授权使用、陷门和特洛伊木马、病毒、诽谤等。
对于信息系统来说,威胁可以是针对物理环境、通信链路、网络系统、操作系统、应用系统以及管理系统等方面。物理安全威胁,是指对系统所用设备的威胁,自然灾害、电源故障、操作系统引导失败或数据库信息丢失、设备被盗/被毁造成数据丢失或信息泄露。通信链路安全威胁,是指在传输线路上安装窃听装置或对通信链路进行干扰。网络安全威胁,互联网的开放性、国际性与无安全管理性,对内部网络形成严重的安全威胁。操作系统安全威胁,对系统平台最危险的威胁是在系统软件或硬件芯片中植入威胁,如“木马”和“陷阱门”、BIOS有万能密码。应用系统安全威胁,是指对于网络服务或用户业务系统安全的威胁,也受到“木马’’和“陷阱门”的威胁。对于管理系统安全威肋、,是指必须要从人员管理上杜绝安全漏洞。
具体来讲,常见的安全威胁有如下几种。
①信息泄露:信息被泄露或透露给某个非授权的实体。
②破坏信息的完整性:数据被非授权地进行增删、修改或破坏而受到损失。③拒绝服务:对信息或其他资源的合法访问被无条件地阻止。
④非法使用(非授权访问):某一资源被某个非授权的人、或以非授权的方式使用。
⑤窃听:用各种可能的合法或非法的手段窃取系统中的信息资源和敏感信息。例如对通信线路中传输的信号进行搭线监听,或者利用通信设备在工作过程中产生的电磁泄漏截取有用信息等。
⑥业务流分析:通过对系统进行长期监听,利用统计分析方法对诸如通信频度、通信的信息流向、通信总量的变化等参数进行研究,从而发现有价值的信息和规律。
⑦假冒:通过欺骗通信系统(或用户)达到非法用户冒充成为合法用户,或者特权小的用户冒充成为特权大的用户的目的。黑客大多采用假冒进行攻击。
⑧旁路控制:攻击者利用系统的安全缺陷或安全性上的脆弱之处获得非授权的权利或特权。例如,攻击者通过各种攻击手段发现原本应保密,但是却又暴露出来一些系统的“特性”。利用这些“特性”,攻击者可以绕过防线守卫者侵入系统的内部。
⑨授权侵犯:被授权以某一目的使用某一系统或资源的某个人,却将此权限用于其他非授权的目的,也称为“内部攻击”。
⑩特洛伊木马:软件中含有一个察觉不出的或者无害的程序段,当它被执行时,会破坏用户的安全。这种应用程序称为特洛伊木马(TrojanHorse)。
(11)陷阱门:在某个系统或某个部件中设置了“机关”,使得当提供特定的输入数据时,允许违反安全策略。
(12)抵赖:这是一种来自用户的攻击,比如:否认自己曾经发布过的某条消息、伪造一份对方来信等。
(13)重放:所截获的某次合法的通信数据拷贝,出于非法的目的而被重新发送。
(14)计算机病毒:所谓计算机病毒,是一种在计算机系统运行过程中能够实现传染和侵害的功
能程序。一种病毒通常含有两个功能:一种功能是对其他程序产生“感染”;另外一种或者是引发损坏功能、或者是一种植入攻击的能力。
(15)人员不慎:一个授权的人为了钱或利益、或由于粗心,将信息泄露给一个非授权的人。(16)媒体废弃:信息被从废弃的磁性的或打印过的存储介质中获得。(17)物理侵入:侵入者通过绕过物理控制而获得对系统的访问。(18)窃取:重要的安全物品,如令牌或身份卡被盗。
(19)业务欺骗:某一伪系统或系统部件欺骗合法的用户或系统自愿地放弃敏感信息。
通过对网络面临的安全风险威胁和实施相应控制措施的支出进行合理的评价,提出有效合理的安全技术,形成提升网络信息的安全性质的安全方案,是安全架构设计的根本目标。在实际应用中,可以从安全技术的角度提取出以下五个方面的内容:认证鉴别、访问控制、内容安全、冗余恢复和审计响应。
13、目前主要的认证方式有以下三类。
①用户名和口令认证:主要是通过一个客户端与服务器共知的口令(或与口令相关的数据)进行验证。根据处理形式的不同,分为验证数据的明文传送、利用单向散列函数处理验证数据、利用单向散列函数和随机数处理验证数据。
②使用令牌认证:该方式中,进行验证的密钥存储于令牌中,目前的令牌包括安全证书和智能卡等方式。
③生物识别认证:主要是根据认证者的图像、指纹、气味和声音等作为认证数据。根据试题5所述该企业的业务特征,采用令牌认证较为合适。用户的身份认证是许多应用系统的第一道防线,其目的在于识别用户的合法性,从而阻止非法用户访问系统。身份认证对确保系统和数据的安全保密是极其重要的,目前,计算机网络系统中常用的身份认证方式主要有以下几种。
①口令认证
用户名/密码是最简单也是最常用的身份认证方法,密码是由用户自己设定的,只有用户自己才知道。只要能够正确输入密码,计算机就认为操作者就是合法用户。实际上,由于许多用户为了防止忘记密码,经常采用诸如生日和电话号码等容易被猜测的字符串作为密码,或者将密码抄在纸上,放在一个自认为安全的地方。这样,很容易造成密码泄露,即使能保证用户密码不被泄露,由于密码是静态的数据,在验证过程中需要在网络中传输,而每次验证使用的信息都是相同的,很容易被驻留在内存中的木马程序或网络中的监听设备截获。因此,从安全性上讲,用户名/密码方式是一种极不安全的身份认证方式。
②令牌认证
在使用令牌进行认证的系统中,进行验证的密钥存储于令牌中。对密钥的访问用口令进行控制。令牌是一个像IC卡一样可以加密存储并运行相应加密算法的设备,这种简单认证可以快速、方便地实现用户身份认证,但是认证的安全强度不高。通过令牌可以完成对用户必须拥有某物的验证。令牌的实现分为质询响应令牌和时间戳令牌。其中使用较多的是时间戳令牌。
质询响应令牌的工作原理是:在进行身份认证时,认证服务器首先发送一个随机数到客户机的登录程序。用户将这个随机数读出,输入令牌,并输入令牌的PIN码(实际就是口令),得以访问令牌。令牌对输入的随机数用存储的私钥进行签名,并把结果用Base64编码输出。用户把令牌的输出填入客户机的验证程序中,数据传输到认证的服务器端,在服务器端将使用用户的公钥对签名进行验证,以确定是否允许客户通过登录认证。在该方案中,由于使用数字签名进行登录认证,系统的安全强度大大增加:私钥采用令牌存储的方式解决了私钥自身的安全问题。令牌是一个可移动的设备,可以随身携带,而且令牌有PIN码保护,对令牌的非法访问超过一定的次数后,令牌会死锁。
时间戳令牌解决了质询响应令牌中随机数的问题,时间戳令牌利用时间代替上面的随机数。时间戳令牌每时每刻都在工作,一般每分钟产生一个登录数据,用户只需输入PIN码。登录数据被传送到认证的服务器端,服务器利用当前时间对登录数据进行验证,完成用户的登录过程。使用时间戳令牌需要重点考虑时间同步问题,由于令牌的时钟和认证服务器的时钟不同步,产生的验证码并不会通过验证。解决的方法是在验证服务器上进行多次试探验证,在一个时间范围内试探,如果成功则在服务器上存储令牌时钟与服务器时钟的偏移量,以便下次登录时使用。目前,在安全性要求较高的认证系统中,多数采用这种方案。
采用PIN码与令牌实现了双因素验证,根据用户知道什么、拥有什么进行认证,也提供了一个保密认证密钥的方法。但是实现双因素验证需要用户输入数据,给用户的操作增加了麻烦。
③生物识别认证
生物特征识别是通过可测量的身体或行为等生物特征进行身份认证的一种技术。生物特征分为身体特征和行为特征两类,身体特征包括指纹、掌型、视网膜、虹膜、人体气味、脸型、手的血管和DNA(NeoxyriboNucleicAcid,脱氧核糖核酸)等;行为特征包括签名、语音和行走步态等。目前,部分学者将视网膜识别、虹膜识别和指纹识别等归为高级生物识别技术,将掌型识别、脸型识别、语音识别和签名识别等归为次级生物识别技术,将血管纹理识别、人体气味识别、DNA识别等归为深奥的生物识别技术。
④三因素认证
基于用户知道什么(口令)、拥有什么(私钥和令牌)、是什么(生物特征)的三因素认证是目前强认证中使用最多的手段。在安全性要求较高的系统中,认证必须能对用户进行身份鉴定。要将用户知道什么、拥有什么、是什么结合起来,同时对认证用的密钥进行保护。
14、授权侵犯指的是被授权以某一目的使用某一系统或资源的某个人,将此权限用于其他非授权的目的,也称作“内部攻击”。
针对王工的建议,从系统安全架构设计的角度需要提供抗抵赖框架。
抗抵赖服务包括证据的生成、验证和记录,以及在解决纠纷时随即进行的证据恢复和再次验证。框架中抗抵赖服务的目的是提供有关特定事件或行为的证据。例如,必须确认数据原发者和接收者的身份和数据完整性,在某些情况下,可能需要涉及上下文关系(如日期、时间、原发者/接收者的地点等)的证据,等等。
属于技术应用型的题。给出了一些现象,让考生分析原因,分析缺陷。从描述来看,我们可以很明显得知系统缺乏安全审计的策略。而在安全体系中,审计占有非常重要的地位,安全审汁系统可以帮助发现系统入侵和漏洞、帮助发现系统性能上的不足、为一些安全案件提供有效的追纠证据。同时缺乏抗抵赖的机制。
15、软件架构风格是拙述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据。
管道-过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道。
[解析]本题是一道架构设计方面的试题,考查的内容是常见架构风格的选用。这就涉及不同架构风格的优势、劣势、应用场合的比较分析。
考查架构风格的基本概念与主程序-子程序、管道-过滤器的特点。这一空属于送分题,难度较低。
①软件架构风格的概念
软件架构设计的一个核心问题是能否使用重复的架构模式,即能否达到架构级的软件重用。也就是说,能否在不同的软件系统中,使用同一架构。基于这个目的,学者们开始研究和实践软件架构的风格和类型问题。
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式(idiomaticparadigm)。架构风格定义了一个系统“家族”,即一个架构定义、一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而约束指出系统是如何将这些构件和连接件组合起来的。架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件有效地组织成一个完整的系统。按这种方式理解,软件架构风格定义了用于描述系统的术语表和一组指导构建系统的规则。
对软件架构风格的研究和实践促进了对设计的重用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。架构风格的不变部分使不同的系统可以共享同一个实现代码。只要系统是使用常用的、规范的方法来组织,就可使别的设计师很容易地理解系统的架构。例如,如果某人把系统描述为客户/服务器模式,则不必给出设计细节,相关人员立刻就会明白系统是如何组织和工作的。
②主程序与子程序
Garlan和Shaw对通用软件架构风格进行了分类,他们将软件架构分为数据流风格、调用/返回
风格、独立构件风格、虚拟机风格和仓库风格。题目中的主程序-子程序架构风格属于调用/返回风格,管道-过滤器架构风格属于数据流风格。
主程序-子程序是单线程控制,把问题划分为若干个处理步骤,构件即为主程序和子程序,子程序通常可合成为模块。过程调用作为交互机制,即充当连接件的角色。调用关系具有层次性,其语义逻辑表现为主程序的正确性取决于它调用的子程序的正确性。
③管道-过滤器
在管道-过滤器风格的软件架构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。此风格特别重要的过滤器必须是独立的实体,它不能与其他的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。一个管道/过滤器网络输出的正确性并不依赖于过滤器进行增量计算过程的顺序。
规划图是管道与过滤器风格的示意图。一个典型的管道-过滤器架构的例子是以UNIXShell编写的程序。UNIX既提供一种符号,以连接各组成部分(UNIX的进程),又提供某种进程运行时机制以实现管道。另一个著名的例子是传统的编译器。传统的编译器一直被认为是一种管道系统,在该系统中,一个阶段(包括词法分析、语法分析、语义分析和代码生成)的输出是另一个阶段的输入。
管道-过滤器风格的软件架构具有许多很好的特点。
·使得软构件具有良好的隐蔽性和高内聚、低耦合的特点。
·允许设计师将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成。·支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来。·系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉。
·允许对一些如吞吐量、死锁等属性的分析。
·支持并行执行。每个过滤器作为一个单独的任务完成,因此可与其他任务并行执行。
但是,这样的系统也存在着若干不利因素。·通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计师必须将每个过滤器看成一个完整的从输入到输出的转换。
·不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重。
·因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。16、
根据题干描述:“用户后续还有可能采用其他方式展示帮助内容”,因此KWIC系统对功能变更要求较高。
根据题干描述:“……,后续还将采用其他的方法实现这一功能”,因此KWIC系统对实现某一个功能的算法变更要求较高。
KWIC是一个支持用户交互的窗口界面程序,因此对性能要求并不高。
KWIC系统显示的帮助内容为文本,数据的表示基本不变,因此对数据表示变更要求不高。综合上述分析,可以看出应该采用李工提出的管道-过滤器架构风格。
子程序和管道-过滤器优缺点对比。这两种风格的优缺点包括多方面的很多内容,但要应对该题,并不需要我们面面俱到地把每一个细节记清楚。只要了解两者的核心思想即可。
本问题的核心是对两种架构风格在算法变更、功能变更、数据表示变更和性能等方面的特点进行比较。其中共享数据的主程序-子程序在算法变更方面灵活性较差,算法变更时一般需要重新编译整个系统;在功能变更方面也比较差;在数据表示方面,当需要变更时,也意味着程序传递参数的变化以及整个程序的调整,表现比较差;在性能方面,由于整个程序处在一个紧耦合的状态,因此性能较高。管道-过滤器架构风格在算法变更方面实现比较简单,只需要修改过滤器的实现即可;在功能变更方面也比较简单;在数据表示方面,需要同时改变数据格式和过滤器的结构,相对比较复杂;在性能方面,由于整个系统是松耦合连接在一起的,因此性能不太高。
根据题干描述:“用户后续还有可能采用其他方式展示帮助内容”,因此KWIC系统对功能变更要求较高;根据题干描述:“…,后续还将采用其他的方法实现这一功能”,因此KWIC系统对实现某一个功能的算法变更要求较高;KWIC是一个支持用户交互的窗口界面程序,因此对性能要求并不高;KWIC系统的显示帮助内容为文本,数据的表示基本不变,因此对数据表示变更要求不高。针对这些考虑,可以看出应该采用管道-过滤器的架构风格。17、完整的架构示意图如图所示。
是补充架构设计示意图。其实这个图要表现出来的,无非就是利用管道-过滤器架构,需要处理的信息的操作有哪些,按什么顺序排列。根据题干中的关键描述“……接收用户输入的查询关键字,依据字
母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读……”和“××公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动……”,可以看出整个系统的流程是:输入→文档检索→查询结果按字母排序→剪切行首单词→单词插入行尾→输出。18、张工提出的集中式数据架构是由一个处理器、与它相关联的数据存储设备以及其他外围设备组成,它被物理地定义到单个位置。系统提供数据处理能力,用户可以在同样的站点上操作,也可以在地理位置隔开的其他站点上通过远程终端来操作。系统及其数据管理被某个中心站点集中控制。
数据可以在多(2)刘工提出的分布式数据架构由多个计算机系统上的多个局部数据库系统构成,
个不同的局部数据库中进行传送,由不同的数据库管理系统软件进行管理,运行在多种不同的计算机上,支持多种不同的操作系统。这些机器位于(或分布在)不同的地理位置并通过多种通信网络连接在一起。企业数据可以分布在不同的计算机上,一个应用程序可以操作位于不同地理位置的机器上的数据。
[解析]本题主要考查考生对于软件系统数据架构建模的掌握情况。数据架构定义了信息系统中文件和数据库的分布结构。数据架构建模是以数据为中心,建模业务数据类型和结构,以及设计满足应用需求的数据库系统。传统以主机为中心的信息系统开发中,利用单个的数据库系统实现数据的集中式存储,物理上所有的数据位于同一个位置,构成的是一种集中式的数据架构;现代基于网络的分布式系统开发中,很少有组织会将其全部的数据存储在单个的数据库中,通常由多个数据库系统组成,数据在这些数据库系统之间可以传送,由多个不同的数据库管理系统控制,构成的是一种分布式的数据架构。
集中式数据架构中,一个或多个局域网中的客户共享一个计算机系统中的单个数据库。系统提供数据处理能力,用户可以在同样的站点上操作,也可以在地理位置隔开的其他站点上通过远程终端来操作。系统及其数据管理被某个或中心站点集中控制。单个数据库服务器结构的主要优点就是简单、易于维护开发及运行成本低;但由于所有的客户直接请求服务器,容易发生性能瓶颈,如果服务失败,单个服务器不能提供备份和恢复,所有依赖的应用程序都将不能工作。
分布式数据架构中,使用多个计算机系统以及用户能够访问远程系统的数据,数据可以在多个不同的数据库中进行传送,由不同的数据库管理系统软件进行管理,运行在各种不同的计算机上,支持多种不同的操作系统。这些机器位于(或分布在)不同的地理位置并通过多种通信网络连接在一起。企业数据可以分布在不同的计算机上,一个应用程序可以操作位于不同地理位置的机器上的数据。多个数据库服务器结构的主要优点就是系统的容错能力和对广域网容量的需求有所降低,可以采用多种策略提升整个系统的服务质量;由于多个数据库系统分布在不同的网络节点上,位于不同位置的数据之间需要同步和协作,系统结构复杂、运行成本高并且维护困难。
在实际应用系统的数据架构建模中,应根据不同的应用需求选择集中式或分布式的数据架构。本题中由于RMO要扩展其销售区域,其潜在客户数量也会因此大幅度增加,所以良好的可扩展性是CRSS系统所必需的质量属性:并且由于其销售区域扩大后,系统中的数据会存储于不同的地理位置,所以采用分布式数据架构最为合理。
19、读/写分离的架构利用了数据库的复制技术,将数据的读和写分布在不同的处理节点上,从而达到提高可用性和扩展性的目的。
通过采用局部数据库的双机热备可以解决单点故障的问题,CRSS的分布式数据库系统可由多个局部数据库系统、相应的热备份数据库系统和数据缓存组成。
局部数据库负责数据的写入,其热备份系统准备随时为局部数据库提供故障切换,数据缓存为应用提供所读取的数据。
(1)读取数据:应用访问缓存,如果命中则返回,否则从局部数据库系统中读取数据并将数据加载到缓存后返回。
(2)添加数据:采用延迟加载策略,应用将数据直接写入局部数据库。
(3)更改数据:应用更改局部数据库中的数据,将缓存中的数据标记为失效。(4)删除数据:应用删除局部数据库中的数据,将缓存中的数据标记为失效。
读/写分离架构应用非常广泛,很多网站采用数据库+缓存的方式来实现。通过缓存层来承载大量的读访问,如广泛采用的Mencached,其自身往往不具备持久层存储的功能,通常和数据库一起组成分布式的数据架构,由数据库负责数据持久化存储和写入功能,缓存负责承载大量的并发访问,从而提高了系统的数据处理效率。要避免数据访问的单点故障,通常采用主数据库热备份的方式来实现。
所以,要实现题目要求的分布式数据架构,需要由多个局部数据库系统、多个热备份数据库系统和多个数据缓存组成。
读/写分离结构中,应用读取数据时访问缓存,如果没有命中所需数据,则从主数据库中读取数据并写入缓存;对于新增、修改和删除操作,需要采用延迟加载的策略,新增时只修改主数据库,修改和删除时除了修改主数据库中的内容,还需要将缓存中的数据标记为失效。
20、张工提出的集中式数据架构通过向上扩展(ScaleUp)提升系统的可扩展性。具体的实现方式包括硬件扩容(增加CPU数量、内存容量、磁盘数量)和硬件升级(更换为高端主机或高速磁盘等)。
刘工提出的分布式数据架构通过向外扩展(ScaleOut)提升系统的可扩展性。具体的实现方式包括数据复制、数据垂直切分(或/和)水平切分、缓存和全文搜索。传统的集中式数据架构中由于只有单个的数据库系统,所以要满足可扩展性的要求,更多的只能通过硬件的方式来实现。具体的实现方式包括硬件扩容(增加CPU/内存容量/磁盘数量)和硬件升级(更换高端主机或高速磁盘等)。
基于网络的分布式数据架构中由多个数据库系统共同组成,可以通过更改和优化数据分布来满足系统可扩展性的要求。具体的实现方式包括数据复制、数据垂直切分(或/和)水平切分、缓存和全文搜索。
21、李工设计的流程符合AUTOSAR要求,理由如下。
李工定义的流程是将软件组件描述、系统描述和ECU资源描述同时定义,而王工定义的流程仅仅只做系统描述。
王工定义的流程没有考虑软件组件的描述,只是简单将软件组件作为第4个步骤被集成。李工定义的ECU软件开发流程的优势是明确了顶层定义阶段,并行度高,迭代清晰。
[解析]本题主要考查汽车电子基础软件架构的分析与设计,特别是系统的开发和架构设计方面。
本问题主要考查在一定规范的约束下,系统设计流程的设计与定义。AUTOSAR规范中要求,汽车电子软件开发流程应尽量满足并发、可多次迭代的特性。因此应该紧扣该规范对系统设计流程方面的要求,对李工和王工定义的流程进行评价。具体分析如下。
(1)李工定义的流程是将软件组件描述、系统描述和ECU资源描述同时定义,而王工定义的流程仅仅只做系统描述。
(2)王工定义的流程(如图所示)没有考虑软件组件的描述,只是简单地将软件组件作为第4个步艰骤被集成。
(3)李工定义的ECU软件开发流程的优势是明确了顶层定义阶段,并行度高,迭代清晰。综上,应该采用李工的设计方案。
22、①操作系统的警报管理发现。ECU系统出错时,启动错误处理程序。
②错误处理程序将具体动作交由进程管理,完成对发生错误的任务进行处理。③错误处理程序产生一个错误事件。
④任务控制块处理程序调用资源管理功能,实现硬件资源重分配。⑤任务控制块处理程序通知事件管理,对错误事件进行应答。
本问题是一道读图题,要求考生在分析AUTOSAR定义的操作系统结构进行分析与理解的基础上进行填写。根据图所示,系统从下至上依次可以分为中断管理、事件管理、警报管理、进程管理和调度以及资源管理四个部分。根据图中模块之间的关系,可以看出,①主要表示当操作系统的警报管理发现ECU系统出错时,启动错误处理程序;②表示错误处理程序将具体动作交由进程管理完成对发生错误的任务进行处理;③表示错误处理程序产生一个错误事件;④表示任务控制块处理程序调用资源管理功能,实现硬件资源重分配;⑤表示任务控制块处理程序通知事件管理,对错误事件进行应答。23、采用AUTOSAR开放式架构的优点如下。
①可以有效支持多厂家汽车电子基础软件的研制。
②有利于软件的重用,可根据不同的ECU结构,通过数据配置,自动生成各种ECU软件组件。③AUTOSAR定义的软件框架,支持了汽车电子软件的全生存周期,包括构架、开发、测试、验证、授权、版本和接口。
AUTOSAR规范覆盖整个汽车电子的三大领域:动力、底盘、车身。
本题主要考查考生对AUTOSAR架构的分析与总结能力。根据题干和上述两个题目的回答,可以看出,采用AuTOSAR开放式架构的优点主要如下。
①具有厂商独立性,可以有效地支持多厂家汽车电子基础软件的研制。
②软件层次上的重用性,可根据不同的ECU结构,通过数据配置,自动生成各种ECU软件组件。③支持汽车电子软件的全生存周期,包括构架、开发、测试、验证、授权、版本和接口。另外,该规范覆盖整个汽车电子的三大领域为动力、底盘和车身。24、本题主要考查考生应用集成的掌握情况。
ESB的主要功能包括如下。(1)应用程序的位置透明性。(2)传输协议转换。(3)消息格式转换。(4)消息路由。(5)消息增强。(6)安全支持。(7)监控和管理。
采用ESB作为集成框架,能够实现灵活的部署结构,包括CS结构、P2P结构等。
采用ESB作为集成框架,待集成系统只需要和总线进行联系,彼此之间不需要互相通信,这样就大大降低了系统的耦合程度。
采用ESB作为集成框架,在加入新的待集成系统时,只需要采用插件的方式实现传输协议和数据格式的适配即可,系统的可扩展性较强。
[解析]本题主要考查系统集成的相关知识及应用,需要考生结合题干描述和自己的实际经验进行回答。
本问题主要考查企业服务总线(ESB)的基本概念,需要考生列举出企业服务总线七个核心功能中的任意四个。
ESB的概念是从SOA发展而来的,它是一种为进行连接服务提供的标准化的通信基础结构,基于开放的标准,为应用提供了一个可靠的、可度量的和高度安全的环境,并可帮助企业对业务流程进行设计和模拟,对每个业务流程实施控制和跟踪、分析并改进流程和性能。
在一个复杂的企业计算环境中,如果服务提供者和服务请求者之间采用直接的端到端的交互,那么随着企业信息系统的增加和复杂度的提高,系统之间的关联会逐渐变得非常复杂,形成一个网状结构,这将带来昂贵的系统维护费用,同时也使得IT基础设施的复用变得困难重重。ESB提供了一种基础设施,消除了服务请求者与服务提供者之间的直接连接,使得服务请求者与服务提供者之间进一步解耦。
ESB是由中间件技术实现并支持SOA的一组基础架构,是传统中间件技术与XML、WebService等技术结合的产物,是在整个企业集成架构下的面向服务的企业应用集成机制。具体来说,ESB具有以下功能。
(1)支持异构环境中的服务、消息和基于事件的交互,并且具有适当的服务级别和可管理性。(2)通过使用ESB,可以在几乎不更改代码的情况下,以一种无缝的非侵入方式使现有系统具有全新的服务接口,并能够在部署环境中支持任何标准。
(3)充当缓冲器的ESB(负责在诸多服务之间转换业务逻辑和数据格式)与服务逻辑相分离,从而使不同的系统可以同时使用同一个服务,用不着在系统或数据发生变化时,改动服务代码。
(4)在更高的层次,ESB还提供诸如服务代理和协议转换等功能。允许在多种形式下通过像HTTP、SOAP和JMS总线的多种传输方式,主要是以网络服务的形式,为发表、注册、发现和使用企业服务或界面提供基础设施。
(5)提供可配置的消息转换翻译机制和基于消息内容的消息路由服务,将消息传输到不同的目的地。
(6)提供安全和拥有者机制,以保证消息和服务使用的认证、授权和完整性。
ESB的以上功能中,可以总结出其核心功能包括应用程序的位置透明性、传输协议转换、消息格式转换、消息路由、消息增强、安全支持、监控和管理。
在企业应用集成方面,与现存的、专有的集成解决方案相比,ESB具有以下的优势。
(1)扩展的、基于标准的连接。ESB形成一个基于标准的信息骨架,使得在系统内部和整个价值链中可以容易地进行异步或同步数据交换。ESB通过使用XML、SOAP和其他标准,提供了更强大的系
统连接性。
(2)灵活的、服务导向的应用组合。基于SOA,ESB使复杂的分布式系统(包括跨多个应用、系统和防火墙的集成方案)能够由以前开发测试过的服务组合而成,使系统具有高度可扩展性。
(3)提高复用率,降低成本。按照SOA方法构建应用,提高了复用率,简化了维护工作,进而减少了系统总体成本。
(4)减少市场反应时间,提高生产率。ESB通过构件和服务复用,按照SOA的思想简化应用组合,基于标准的通信、转换和连接来实现这些优点。
根据集成系统的部署方式,可以看出采用ESB作为集成框架,能够实现灵活的部署结构,包括CS结构、P2P结构等。
从待集成系统之间的耦合程度,可以看出采用ESB作为集成框架,待集成系统只需要和总线进行联系,彼此之间不需要互相通信,这样就大大降低了系统的耦合程度。
从集成系统的可扩展性,可以看出采用ESB作为集成框架,在加入新的待集成系统时,只需要采用插件的方式实现传输协议和数据格式的适配即可,系统的可扩展性较强。
25、来说,由于需要共享系统的功能,并且系统的运行平台与语言差异较大,应该采用面向服务的方式进行功能集成,可以将工具的功能包装为服务,实现跨语言与跨平台访问。
对于需求(2)来说,工具所支持的通信协议和数据格式各不相同,并需要实现工具之间的灵活通信协议和数据格式交换,因此应该基于消息总线,以协议及数据适配器的方式实现灵活的通信协议和数据格式转换。
对于需求(3)来说,集成框架需要根据实际的软件系统开发流程,灵活、动态地定义系统设计与开发工具之间的协作关系,因此应该引入工作流定义语言及其引擎来动态描述开发工具之间的协作关系。
对于需求(4)来说,应该采用界面集成的方法对第三方实用工具进行集成,绕过工具内部的复杂处理逻辑。
“目前使用的系统设计与开发工具的运行平台和开发语言差异较大,集成框架应无缝集成各个工具的功能”来说,由于需要共享系统的功能,并且系统的运行平台与语言差异较大,应该采用面向服务的方式进行功能集成,可以将工具的功能包装为服务,实现跨语言与跨平台访问。
对于需求(2)“目前使用的系统设计与开发工具所支持的通信协议和数据格式各不相同,集成框架应实现工具之间的灵活通信和数据格式转换”来说,工具所支持的通信协议和数据格式各不相同,并需要实现工具之间的灵活通信协议和数据格式交换,因此应该基于消息总线,以协议及数据适配器的方式实现灵活的通信协议和数据格式转换。
对于需求(3)“集成框架需要根据实际的开发流程灵活、动态地定义系统工具之间的协作关系”来说,集成框架需要根据实际的软件系统开发流程,灵活、动态地定义系统设计与开发工具之间的协作关系,因此应该采用解释器架构风格,引入工作流定义语言及其引擎来动态描述工具之间的协作关系。
对于需求(4)“集成框架应能集成一些常用的第三方实用工具,如即时通信,邮件系统等”来说,应该采用界面集成的方法对第三方工具进行集成,绕过工具内部的复杂处理逻辑,实现功能集成。26、在实现工具之间数据格式的灵活转换时,通常采用适配器设计模式。即应首先定义一个统一的数据转换接口类,然后针对不同的数据格式转换需求定义对应的实际转换类,实际转换类需要继承数据转换接口类,并实现接口转换类定义的接口。本题主要考查数据转换在实现层面上的常用方法。在实现工具之间数据格式的灵活转换时,通常采用适配器设计模式。即应首先定义一个统一的数据转换接口类,然后针对不同的数据格式转换需求定义对应的实际转换类,实际转换类需要继承数据转换接口类,并实现接口转换类定义的接口。27、可靠度就是系统在规定的条件下、规定的时间内不发生失效的概率。
失效率又称风险函数,也可以称为条件失效强度,是指运行至此刻系统未出现失效的情况下,单位时间系统出现失效的概率。
[解析]本题考查信息系统中可靠性的设计,是比较传统的题目,要求考生细心分析题目中所描述的内容。
本问题考查信息系统可靠性的两个基本指标:可靠度和失效率。可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力。考虑到软件本身的复杂性,软件可靠性的定义是:在规定的
条件下,在规定的时间内,软件不引起系统失效的概率。
在软件可靠性的定量描述中,软件可靠性可以基于使用条件、规定时间、系统输入、系统使用和软件缺陷等变量构建数学表达式,来对软件可靠性进行定量描述。相关概念有规定时间、失效概率、可靠度、失效强度、失效率、平均无失效时间等。其中可靠度是表示可靠性最直接的方式,是软件系统在规定的条件下、规定的实践内不发生失效的概率。而失效率又称风险函数,也可以称为条件失效强度,是指运行至此刻系统未出现失效的情况下,单位时间系统出现失效的概率。
28、动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来替代它并重新运行。各备用模块在其待机时,可与主模块一样工作,也可以不工作。前者叫热备份系统(双重系统),后者叫冷备份系统(双工系统、双份系统)。
N版本程序设计是一种静态的故障屏蔽技术,其设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N个版本的程序必须由不同的人独立设计,使用不同的方法、设计语言、开发环境和工具来实现,目的是减少N个版本的程序在表决点上相关错误的概率。
M2采用动态冗余后的可靠度为:R=1-(1-0.99)3≈0.999999
李工的方案同时采用了串联和并联方式,其计算方法为首先计算出中间M2和M3两个并联系统的可靠度,再按照串联系统的计算方法计算出整个系统的可靠度。
R=0.99×0.999999×0.999999×0.99≈0.98
本问题考查在常规的软件设计中,应用各种方法和技术,使程序设计在兼顾用户功能和性能需求的同时,全面满足软件的可靠性要求。常见的软件可靠性技术主要有容错设计、检错设计和降低复杂度设汁等技术。
其中,容错设计技术主要有冗余设计、恢复块设计和N版本程序设计三种方法。①冗余设计
冗余是指在正常系统运行所需的基础上加上一定数量的资源,包括信息、时间、硬件和软件。冗余是容错技术的基础,通过冗余资源的加入,可以使系统的可靠性得到较大的提高。主要的冗余技术有结构冗余(硬件冗余和软件冗余)、信息冗余、时间冗余和冗余附加四种。结构冗余是常用的冗余技术,按其工作方式,可分为静态冗余、动态冗余和混合冗余三种。具体阐述如下。
·静态冗余。静态冗余又称为屏蔽冗余或被动冗余,常用的有三模冗余和多模冗余。静态冗余通过表决和比较来屏蔽系统中出现的错误。例如,三模冗余是对三个功能相同,但由不同的人采用不同的方法开发出的模块的运行结果进行表决,以多数结果作为系统的最终结果。即如果模块中有一个出错,这个错误能够被其他模块的正确结果“屏蔽”。由于无须对错误进行特别的测试,也不必进行模块的切换就能实现容错,故称为静态容错。
·动态冗余。动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。各备用模块在其待机时,可与主模块一样工作,也可不工作。前者叫做热备份系统(双重系统),后者叫做冷备份系统(双工系统、双份系统)。在热备份系统中,两套系统同时、同步运行,当联机子系统检测到错误时,退出服务进行检修,而由热备份子系统接替:[作,备用模块在待机过程中其失效率为0;处于冷备份的子系统平时停机或者运行与联机系统无关的运算,当联机子系统产生故障时,人工或自动进行切换,使冷备份系统成为联机系统。在运行冷备份时,不能保证从系统断点处精确地连续工作,因为备份机不能取得原来的机器上当前运行的全部数据。
·混合冗余。混合冗余技术是将静态冗余和动态冗余结合起来,且取两者之长处。它先使用静态冗余中的故障屏蔽技术,使系统免受某些可以被屏蔽的故障的影响。而对那些无法屏蔽的故障则采用主动冗余中的故障检测、故障定位和故障恢复等技术,并且对系统可以做重新配置。因此,混合冗余的效果要大大优于静态冗余和动态冗余。然而,由于混合冗余既要有静态冗余的屏蔽功能,又要有动态冗余的各种检测和定位等功能,它的附加硬件的开销是相当大的,所以混合冗余的成本很高,仅在对可靠性要求极高的场合中采用。
·信息冗余。信息冗余是在实现正常功能所需要的信息外,再添加一些信息,以保证运行结果正确性的方法。例如,检错码和纠错码就是信息冗余的例子。这种冗余信息的添加方法是按照一组预定的规则进行的。符合添加规则而形成的带有冗余信息的字称为码字,而那些虽带有冗余信息但不符合
添加规则的字则称为非码字。当系统出现故障时,可能会将码字变成非码字,于是在译码过程中会将引起非码字的故障检测出来,这就是检错码的基本思想。纠错码则不仅可以将错误检测出来,还能将由故障引起的非码字纠正成正确的码字。
由此可见,信息冗余的主要任务在于研究出一套理想的编码和译码技术来提高信息冗余的效率。编码技术中应用最广泛的是奇偶校验码、海明校验码和循环冗余校验码。
时间冗余是以时间(即降低系统运行速度)为代价以减少硬件冗余和信息冗余的开销·时间冗余。
来达到提高可靠性的目的。在某些实际应用中,硬件冗余和信息冗余的成本、体积、功耗、重量等开销可能过高,而时间并不是太重要的因素时,可以使用时间冗余。时间冗余的基本概念是重复多次进行相同的计算,或称为重复执行(复执),以达到故障检测的目的。
实现时间冗余的方法很多,但是其基本思想不外乎是对相同的计算任务重复执行多次,然后将每次的运行结果存放起来再进行比较。若每次的结果相同,则认为无故障;若存在不同的结果,则说明检测到了故障。不过,这种方法往往只能检测瞬时性故障而不宜检测永久性的故障。
·冗余附加。冗余附加是指为实现上述冗余技术所需的资源和技术,包括程序、指令、数据,以及存放和调用它们的空间等。动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。各备用模块在其待机时,可与主模块一样工作,也可不工作。前者叫做热备份系统(双重系统),后者叫做冷备份系统(双工系统、双份系统)。在热备份系统中,两套系统同时、同步运行,当联机子系统检测到错误时,退出服务进行检修,而由热备份子系统接替工作,备用模块在待机过程中其失效率为0;处于冷备份的子系统平时停机或者运行与联机系统无关的运算,当联机子系统产生故障时,人工或自动进行切换,使冷备份系统成为联机系统。在运行冷备份时,不能保证从系统断点处精确地连续工作,因为备份机不能取得原来的机器上当前运行的全部数据。
②恢复块设计
恢复块设计是一种动态的故障屏蔽技术,采用后向恢复策略。恢复块设计提供具有相同功能的主块和几个后备块,一个块就是一个执行完整的程序段,主块首先投入运行,结束后进行验证测试,如果没有通过验证测试,系统经现场恢复后由后备块l运行。后备块1运行结束后也进行验证测试,如果没有通过验证测试,系统经现场恢复后由后备块2运行。重复这一过程,可以重复到耗尽所有的后备块,或者某个程序故障行为超出了预料,从而导致不可恢复的后果。在程序设计时,应保证实现主块和后备块之间的独立性,避免相关错误的产生,使主块和后备块之间的共性错误降到最低程度。
恢复块设计依赖于一个裁决者,那就是验证测试(可接受测试),由它来决定同一算法不同实现的计算结果是否正确。带有恢复块的系统被分成故障可恢复的块。整个系统就由这些容错块组成。每一块至少包含一个一级模块、一个二级模块和一个例外处理模块,以及一个验证测试模块。验证测试模块完成故障检测功能,它本身的故障对恢复块方法而言是共性的,因此,必须确保它的正确性。同时,验证测试模块是为了确定模块计算结果的正确性,它必须尽可能的简单。
③N版本程序设计
N版本程序设计是一种静态的故障屏蔽技术,其设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N个版本的程序必须由不同的人独立设计,使用不同的方法、设计语言、开发环境和工具来实现,目的是减少N个版本的程序在表决点上相关错误的概率。
④可靠性计算
计算机系统是一个复杂系统,影响其可靠性的因素很多,很难直接进行可靠性分析,往往需要建立对应的数学模型。组合模型是分析系统可靠性的一种常用方法。
组合模型下可靠度的计算方法如下。串联系统:R=R1×R2×……×Rn并联系统:R=1-(1-R1)×(1-R2)×……×(1-Rn)
串联和并联混合系统则根据实际情况,灵活运用上述两个计算公式。
M2采用动态冗余后,成为并联系统,则其可靠度为:R=1-(1-0.99)3=0.999999。
李工给出的方案同时采用了串联和并联方式,其计算方法为首先计算出中间M2和M3两个并联系统的可靠度,再按照串联系统的计算方法计算出整个系统的可靠度。
R=0.99×0.999999×0.999999×0.99=0.98
29、检错技术实现的代价一股低于容错技术和冗余技术,但有一个明显的缺点,就是不能自动解决故障,出现故障后如果不进行人工干预,将最终导致软件系统不能正常运行。
检错技术常见的实现方式:最直接的一种实现方式是判断返回结果,如果返回结果超出正常范围,则进行异常处理;计算运行时间也是一种常用技术,如果某个模块或函数运行时间超过预期时间,可以判断出现故障;还有置状态标志位等多种方法,自检的实现方式需要根据实际情况来选用。
检错技术的处理方式,大多数都采用“查处故障-停止软件运行-报警”的处理方式。但根据故障的不同情况,也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定。
本问题考查软件可靠性设计中的检错技术。
检错技术常见的实现方式有很多种,最直接的一种实现方式是判断返回结果,如果返回结果超出正常范围,则进行异常处理;计算运行时间也是一种常用技术,如果某个模块或函数运行时间超过预期时间,可以判断出现故障;还有置状态标志位等多种方法,自检的实现方式需要根据实际情况来选用。
检错技术的处理方式也有多种,大多数都采用“查处故障-停止软件运行-报警”的处理方式。但根据故障的不同情况,也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定。
检错技术实现的代价一般低于容错技术和冗余技术,但有一个明显的缺点,就是不能自动解决故障,出现故障后如果不进行人工干预,将最终导致软件系统不能正常运行。30、效用树答案表如表所示。效用树答案表答案编号(1)可修改性(2)可用性(3)(f)(4)(l)(5)(h)(6)(b)[解析]本题考查软件质量属性的相关内容,以及架构风险、敏感点、权衡点的基本概念。软件质量
属性在架构设计中是一个重要关注点,架构设计的过程往往就是对不同质量属性的平衡与取舍。
考查考生对各种质量属性的理解。质量属性种类繁多,如:性能、可用性、可修改性、安全性等。
首先分析(3)空白应填写的内容,该空的解答较为直接,只需要分析题目给出的质量属性场景中,除(a)还有哪个属于性能。“(f)交易过程中涉及的产品介绍视频传输必须保证画面具有600*480的分辨率,20帧/秒的速率;”描述中,强调了视频必须保证的画面分辨率以及每秒帧数,这是对性能的要求。
(1)空白和(2)空白的分析较为复杂,需要通过反向推导的方式分析其分支之下的(e)与(d)属于哪个质量属性。“(e)需要在20人月内为系统添加一个新的CORBA中间件;”涉及在原有系统基础之上,增加新的功能,这个时限要求原系统具有良好的可修改性,否则无法按期修改完成,所以(1)空白应为可修改性。同理:“(d)网络失效后,系统需要在1.5分钟内发现错误并启用备用系统;”是对系统可用性的要求,所以(2)空白应填可用性。
当完成前面的几个空以后,接下来的几个空就比较容易解决了。即判断剩余的质量场景:(b)、(c)、(g)、(h)、(i)、(k)、(l)、(m),哪个属于可修改性,哪个属于可用性,哪个属于安全性。“(b)信用卡支付必须保证99.999%的安全性;”显然体现的是安全性;“(h)主站点断电后,需要在3秒钟内将访问请求重定向到备用站点;”是一种保障系统在出现问题时,仍能继续使用的机制,即提高可用性的方法;“(1)更改Web界面接口必须在4人周内完成;”体现出系统的可修改性。31、系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
敏感点是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。
权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。
题干描述中,(k)描述的是系统架构风险;(c)描述的是敏感点;(g)描述的是权衡点。
属于概念题,系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。
题干描述中的“(k)目前对系统信用卡支付业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性”属于架构风险,因为未达成共识的业务逻辑描述存在隐患。
“(c)对交易清求处理时间的要求将影响系统的数据传输协议和处理过程的设计”是敏感点,因为对交易请求处理时间的要求将影响到数据传输协议和处理过程的设计,这也就意味着有多个构件将受其影响。
“(g)更改加密的级别将对安全性和性能产生影响”描述的是权衡点,因为更改加密级别将影响多个质量属性的特性,这两个方面的影响往往是:安全性提高的同时,性能降低;而安全性降低的同时性能提高。
32、规范化设计后,数据库设计者希望牺牲部分规范化来提高性能,这种从规范化设计的回退方法称为反规范化技术。
采用反规范化技术的益处:降低连接操作的需求、降低外码和索引的数目,还可能减少表的数目,能够提高查询效率。
可能带来的问题:数据的重复存储,浪费了磁盘空间;可能出现数据的完整性问题,为了保障数据的一致性,增加了数据维护的复杂性,会降低修改速度。[解析]本题考查数据库相关的知识。题目涉及反规范化技术。
规范化技术在数据库中的应用十分常见。当数据库对数据模型进行规范化处理后,会发现这些经过规范化处理的模型在进行查询操作时效果并不理想。因为经过规范化处理的数据模型形成了一系列的小表,每个表的数据量较小,进行查询操作时往往需要应用程序对这些表进行动态的连接操作,这就要在不同的表中进行多次I/O操作。表的连接操作对于较少的,小容量表也许不会产生较大的影响,但是对于数据量十分庞大的数据库,这种多表连接操作在时间上是很难让用户接受的。此时,提高效率的最好方法就是使这些小表合并在一起,这就是数据的反规范化处理。
经过以上对于规范化处理的描述可以得知:反规范化技术主要是为了提升查询性能而进行的一系列处理,包括对数据表进行连接,合理规划数据的存放,以及引入合理的数据冗余。其益处在于:降低连接操作的需求、降低外码和索引的数目,还可能减少表的数目,能够提高查询效率。带来的问题是:数据的重复存储,浪费了磁盘空间;可能出现数据的完整性问题,为了保障数据的一致性,增加了数据维护的复杂性,会降低修改速度。
33、增加冗余列:在多个表中保留相同的列,通过增加数据冗余减少或避免查询时的连接操作。
(2)增加派生列:在表中增加可以由本表或其他表中数据计算生成的列,减少查询时的连接操作并避免计算或使用集合函数。
(3)重新组表:如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。
(4)水平分割表:根据一列或多列数据的值,把数据放到多个独立的表中,主要用于表数据规模很大、表中数据相对独立或数据需要存放到多个介质上时使用。
(5)垂直分割表:对表进行分割,将主键与部分列放到一个表中,主键与其他列放到另一个表中,在查询时减少I/O次数。
为纯概念题,请参看本题参考答案。
34、在教职工信息管理系统的需求中,能够根据编制内或外聘教职工的工资编号分别查询其相关信息,数据查询要求有很高的处理效率。李工所设计的数据模型中采用了三种反规范化技术。
(1)增加冗余列:增加“部门名称”列,消除了数据查询中“教职工信息”表和“部门信息”表之间的连接。
(2)增加派生列:增加“实发工资”列,消除了实发工资的计算过程。
(3)水平分割表:将教职工信息表分割为“编制内教职工信息”表和“外聘教职工信息”表,减少了数据查询的范围。
需要利用问题2的结论并结合题目要求进行解题。教职工信息管理系统要求“能够根据编制内或外聘
教职工的工资编号分别查询其相关信息”,并从题目“特别是针对数据处理中对数据访问效率的需求”可以看出系统对数据访问效率非常重视。而李工正是采用了反规范化技术,使得效率能明显提升。对比王工和李工所设计的数据模型可以发现:在李工设计的数据模型中,增加了“部门名称”列,这属于增加冗余列的技术;增加了“实发工资”列,这属于增加派生列的技术;将教职工信息表分割为“编制内教职工信息”表和“外聘教职工信息”表,这属于水平分割表。
35、1.VME总线采用存储映射方式,多主机仲裁机制,同一时刻由单一主机控制,同时仲裁机制为菊花链方式。针对本系统要求,采用VME方案存在如下问题。
(1)当多主机设备仲裁时,按菊花链的连接次序一个主机处理完成后,才能将控制权交给另一主机控制总线,导致任务执行延时大,不能满足“系统通信延迟小”以及“支持多模块上的应用任务同步”的要求。
(2)VME总线方式限制了可扩展性。与FC相比,VME总线实时性差,带宽低。
2.FC采用消息包交换机制,支持广播和组播。针对本系统要求,采用FC方案有以下优点。(1)由于采用消息包交换机制,支持广播和组播,任务执行并发性好,能满足“系统通信延迟小”以及“支持多模块上的应用任务同步”的要求。
(2)FC的误码率低,可靠性高。与VME比较,FC实时性好,带宽高。
(3)允许在同一接口上传输多种不同的协议,对上层应用实现提供了便利。
(4)FC采用消息机制,FC可扩展性好,如模块较多可采用多个FC网络交换模块级联。(5)FC的传输距离远,当与外部其他设备相连时,比较方便。
(6)系统采用统一的FC网络代替了VME底板总线,降低总线驱动的功耗,简化了底板。[解析]本题考查嵌入式架构设计的相关知识。
嵌入式系统的设计和实现是一个较为复杂的工程,涉及软件和硬件基础知识,本题要求按综合化、模块化的设计思想,其中涉及PC、VME总线以及ARINC653操作系统的概念,比较新颖,需要考生仔细阅读题意,结合相关计算机软硬件知识回答问题。
给出了李工的基于FC技术机载嵌入式系统架构和王工的基于VME总线机载嵌入式系统架构,这两种架构都较为常见。若要分析此处使用哪种方案更优,需要从题目已给出的一些信息结合分析。即考虑综合化、模块化的设计思想,以及系统的安全性与可靠性,硬件的扩展与软件的升级。同时要求系统通信延迟小,支持多模块上的应用任务同步。此外系统要求接收红外、雷达等前端传感器数据并进行处理,将处理结果通过网络发送给数据处理模块。
VME(VersaModuleEurocard)总线是一种通用的计算机总线,结合了Motorola公司Versa总线的电气标准和在欧洲建立的Eurocard标准的机械形状因子,是一种开放式架构。它定义了一个在紧密耦合硬件构架中可进行互连数据处理、数据存储和连接外围控制器件的系统。VME总线采用存储映射方式,多主仲裁机制,同一时刻由单一主机控制,同时仲裁机制为菊花链方式。针对本系统要求,当多主机设备仲裁时,按菊花链的连接次序一个主机处理完成后,才能将控制权交给另一主机控制总线,导致任务执行延时大,不能满足“系统通信延迟小”以及“支持多模块上的应用任务同步”的要求。VME数据传输速率为0~500Mbps,而FC的数据传输率为1Gbps到10Gbps。
FC具有的特点是传输率高,允许在同一接口上传输多种不同的协议,传输距离远,采用单模光纤作为数据传输介质时,传输距离可高达10km:连接简单灵活,误码率低等。
由于FC采用消息包交换机制,支持广播和组播,任务执行并发性好,能满足“系统通信延迟小”以及“支持多模块上的应用任务同步”的要求;与VME比较,FC实时性好,带宽高;允许在同一接口上传输多种不同的协议,对上层应用实现提供了便利;FC采用消息机制,扩展好,如模块较多可采用多个FC网络交换机模块级联:传输距离远,当与外部其他设备相连时比较方便;系统采用统一的FC网络代替VME底板总线,降低总线驱动的功耗,简化了底板。所以最后采用FC的系统结构。36、系统健康监控机制答案如表所示。系统健康监控机制答案答案编号(1)进程健康监控(2)应用进程错误(3)分区初始化阶段出现的分区配置错误(4)(5)分区切换时出现的错误分区健康监控是一个选择题,在解答本题时,关键在于区分不同的错误归属于哪一个错误级别。
模块级错误一般包括:
①模块初始化时发生的模块配置错误;②模块初始化时的其他错误;③系统功能执行期间出现的错误:④分区切换时发生的错误;⑤电源故障。
分区级错误一般包括:
①分区初始化阶段出现的分区配置错误;②分区初始化阶段出现的其他错误;③进程管理中的错误;④错误处理进程的错误。进程级错误一般包括:
①应用进程产生的应用错误;②非法操作系统请求;
③进程执行错误(溢出、缓冲区冲突等)。
37、采用PowerPC实现系统隔离和保护的两种机制如下。
第一种是内存管理机制(MMU)。MMU能够实现逻辑地址到物理地址的转化,并且对访问权进行控制,既可以保护系统内核不受应用软件有意或无意的破坏,也可有效防止各应用软件之间的互相破坏。
第二种是TRAP系统调用机制。操作系统为实现对内核以及应用之间的保护,提供了用户态和系统态两种运行形态。操作系统内核在系统态运行,因此用户态的应用不能直接调用系统内核提供的功能接口,必须通过TRAP系统调用的方式进行。因此可以实现应用与内核之间的隔离与保护。
看似在考技术应用,实质上是考概念。采用PowerPC实现系统隔离与保护有两种机制,这两种机制的详细说明,参看本题试题答案。
38、系统数据源特征与数据操作方式答案如表所示。系统数据源特征与数据源特征数据操作法数据操作方式答案数据形态数据访问实时性数据源类型互联网用户访问信(1)数据报表(3)只读非实时息产品销售信息电子表格与数据库(2)非实时只读通过对系统的数据源特征和数据操作方式进行分析可以看出,待集成的数据均为持久型数据(文
件或数据库),系统对数据的访问均为只读非实时性的。针对上述应用特征,李工提出的面向资源的架构方式以对数据资源的只读访问为核心,通过数据唯一标识直接对各种数据进行访问与获取,系统架构清晰、实现简单、效率较高。
[解析]本题主要考查Web应用背景下多元数据的集成与处理方式,并要求考生理解数据集成和处理各种方案的优劣,进行比较和选择。
本问题主要考查两种不同Web数据源的数据特点。就题干描述的市场策略跟踪与分析系统特征而言,对于互联网用户访问数据源来说,该数据的数据形态一般为数据报表形态,数据为非实时性访问,数据操作方式一般为只读方式。对于产品销售信息,该数据源的数据形态一般为电子表格和数据库,数据访问方式为非实时访问。数据操作方式一股为只读方式。
39、从数据获取方式看,王工的方案需要将现有的多个系统和异构的数据源包装为服务,采用Web服务暴露数据接口,客户端需要通过服务调用获取数据,这种方法工作量大,复杂度较高。李工的方案则绕开了复杂的功能封装,只需要明确数据的位置与标识,通过特定的网络协议直接使用标识定位
并获取数据,与王工的方案相比工作量小,实现简单。
从数据交互方式看,王工的方案采用远程过程调用和异步xML消息等模式实现数据交互,这种方式适合于系统之间功能调用时进行的少量数据传输,而在进行单纯的数据访问时效率不高,稳定性也较差。李工的方案则以数据资源为核心,在对数据资源进行标识的基础上,通过标识符直接对数据资源进行访问与交互,实现简单且效率较高。
从数据访问的上下文无关性看,王工的方案中数据访问是上下文有关的,具体表现在每次客户端进行数据请求都需要附加唯一的请求标识,并且服务端需要区分不同的客户端请求,效率较低。李工的方案中数据访问是上下文无关的,客户端通过全局唯一的统一资源标识符(URI)请求对应的数据资源,服务端不需要区分不同的客户端请求。
本问题主要考查两种方案的比较,考生需要紧扣提问要点,从数据获取方式、数据交互方式和数据访问的上下文无关性三个方面进行比较。
从数据获取方式看,王工的方案需要将现有的多个系统和异构的数据源包装为服务,采用Web服务暴露数据接口,客户端需要通过服务调用获取数据,这种方法工作量大,复杂度较高。李工的方案则绕开了复杂的功能封装,只需要明确数据的位置与标识,通过特定的网络协议直接使用标识定位并获取数据,与王工的方案相比工作量小,实现简单。
从数据交互方式看,王工的方案采用远程过程调用和异步XML消息等模式实现数据交互,这种方式适合于系统之间功能调用时进行的少量数据传输,而在进行单纯的数据防问时效率不高,稳定性也较差。李工的方案则以数据资源为核心,在对数据资源进行标识的基础上,通过标识符直接对数据资源进行访问与交互,实现简单且效率较高。
从数据访问的上下文无关性看,王工的方案中数据访问是与上下文有关的,具体表现在每次客户端进行数据请求都需要附加唯一的请求标识,并且服务端需要区分不同的客户端请求,效率较低。李工的方案中数据访问是与上下文无关的,客户端通过全局唯一的统一资源标识符(URI)请求对应的数据资源,服务端不需要区分不同的客户端请求。40、REST从资源的角度来定义整个网络系统结构,分布在各处的资源由统一资源标识符(URI)确定,客户端应用程序通过URI获取资源的表现,并通过获得资源的表现使得其状态发生改变。
REST中将资源、资源的表现和获取资源的动作三者进行分离。
REST(RepresentationalStateTransfer,表述性状态转移)是一种只使用HTTP和XML进行基于Web通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。它的简单性和缺少严格配置文件的特性,使它与SOAP很好地隔离开来,从根本上来说REST只支持几个操作(POST、GET、PUT和DELETE),这些操作适用于所有的消息。
Web应用程序最重要的REST原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。
在服务器端,应用程序状态和功能可以分为各种资源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等。每个资源都使用URI得到一个唯一的地址。所有资源都共享统一的界面,以便在客户端和服务器之间传输状态。使用的是标准的HTTP方法,比如GET、PUT、POST和DELETE。Hypermedia是应用程序状态的引擎,资源表示通过超链接互联。
另一个重要的REST原则是分层系统,这表示组件无法了解它与之交互的中问层以外的组件。通过将系统知识限制在单个层,可以限制整个系统的复杂性,促进了底层的独立性。
当REST架构的约束条件作为一个整体应用时,将生成一个可以扩展到大量客户端的应用程序。它还降低了客户端和服务器之间的交互延迟。统一界面简化了整个系统架构,改进了子系统之间交互的可见性。REST简化了客户端和服务器的实现。
总结来说,REST提出了如下一些设计概念和准则。(1)网络上的所有事物都被抽象为资源。(2)每个资源对应一个唯一的资源标识。(3)通过通用的连接件接口对资源进行操作。(4)对资源的各种操作不会改变资源标识。
(5)所有的操作都是无状态的。41、1.对称加密策略
(1)机密性:发送者利用对称密钥对要发送的数据进行加密,只有拥有正确相同密钥的接收者才能将数据正确解密,从而提供机密性。
(2)完整性:发送者根据要发送的数据生成消息认证码(或消息摘要),利用对称密钥对消息认证码进行加密并附加到数据上发送;接收者使用相同密钥将对方发送的消息认证码解密,并根据接收到的数据重新生成消息认证码,比较两个认证码是否相同以验证数据的完整性。
2.公钥加密策略(1)机密性:发送者利用接收者的公钥对要发送的数据进行加密,只有拥有对应私钥的接收者才能将数据正确解密,从而提供机密性。
(2)完整性:发送者根据要发送的数据生成消息认证码(或消息摘要),利用自己的私钥对消息认证码进行加密并附加到数据上发送;接收者利用对方的公钥将对方发送的消息认证码解密,并根据接收到的数据重新生成消息认证码,比较两个认证码是否相同以验证数据的完整性。[解析]本题考查安全保密和访问控制技术。
考查考生对于对称与非对称加密技术的理解,以及如何应用这些技术。
对称加密技术,顾名思义,就是指加密与解密密钥是一样的。这种机制之下,发送者与接收者拥有同样的密钥,需要保密传输数据时,由发送方加密信息内容,将其发给接收方,接收方用相同的密钥解密即可。在利用对称加密技术做完整性保障时,可以将需要发送的信息产生摘要,将摘要使用对称密钥加密,然后将信息与加密后的摘要一起发送给接收方,当接收方收到消息后,将摘要的加密包解开,并对收到的信息重新产生摘要,将两个摘要进行对比,便可知信息在传递过程中完整性是否遭到破坏。
非对称加密技术是指加密与解密使用不同的密钥进行。这种密钥是成对产生的,一对密钥中,公钥加密,私钥解密;私钥加密,则公钥解密。使用该技术进行保密传输时,使用接收方的公钥加密,然后进行传输,当接收方收到信息后,使用自己的私钥解密。而当使用该技术进行完整性保障时,也需要用信息摘要技术,先将需要发送的信息产生摘要,摘要使用发送方的私钥加密,接收方收到以后,如果能以发送方的公钥解密出相应摘要,则说明信息完整。
42、授权的可管理性:RBAC将用户与权限分离,与MAC相比,减小了授权管理的复杂性,更适合于大型企业级系统的安全管理。
(2)细粒度访问控制的支持:XACML提供了统一的访问控制策略描述语言,策略表达能力强,可用来描述各种复杂的和细粒度的访问控制安全需求,更适合企业复杂业务功能的访问控制要求。
(3)分布式环境的支持:XACML的标准性便于各子系统的协作交互,各子系统或企业业务部门可以分布管理访问控制权限,而MAC则通常需要对访问控制权限集中管理,不太适合企业基于SOA集成后的分布式系统。
本问题考查访问控制机制及XACML标准的相关知识。从“基于SOA对企业原有多个信息系统进行了集成”可以看出系统访问控制的主要对象为集成后的服务,因此对细粒度访问控制的支持和对分布式环境的支持要求较高,而系统是支撑跨企业整体业务流程的,业务功能复杂,因而对授权的可管理性要求较高。针对上述需求,王工提出的方案比张工提出的方案具有以下的优势。
授权的可管理性:RBAC将用户与权限分离,相比。MAC减小了授权管理的复杂性,更适合于大型企业级系统的安全管理。
细粒度访问控制的支持:XACML提供了统一的访问控制策略描述语言,策略表达能力强,可用来描述各种复杂的和细粒度的访问控制安全需求,更适合企业复杂业务功能的访问控制要求。
分布式环境的支持:XACML的标准性便于各子系统的协作交互,各子系统或企业业务部门可以分布管理访问控制权限,而MAC则通常需要对访问控制权限集中管理,不太适合企业基于SOA集成后的分布式系统。
43、(1)策略执行点(PEP)。
(2)策略决策点(PDP)。(3)策略管理点(PAP)。(4)策略信息点(PIP)。
考查考生对XACML授权架构的理解。其中PEP是在具体应用环境下执行访问控制的实体,它接收外部
的授权请求并生成相应的授权响应,因此(1)处应填PEP;而PDP是系统中授权决策的实体,依据XACML描述的访问控制策略以及其他属性信息进行访问控制决策,因此(2)处应填PDP;PAP系统中产生和维护安全策略的实体,因此(3)处应填PAP;PIP是获取主体、资源和环境的属性信息的实体,因此(4)处应填PIP。
44、软件架构风格是指描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
从集成开发环境与用户的交互方式看,用户通常采用交互式的方式对脚本语言进行编辑、解释执行与调试。在这种情况下,采用以数据存储为中心的架构风格能够很好地支持交互式数据处理,而管道-过滤器架构风格则对用户的交互式数据处理支持有限。
从集成开发环境的扩展性来看,系统核心需求要求实现各种编辑、语法检查、解释执行等多种功能的灵活组织、配置与替换。在这种情况下,采用以数据存储为中心的架构风格,以数据格式解耦各种功能之间的依赖关系,并可以灵活定义功能之间的逻辑顺序。管道-过滤器架构风格同样以数据格式解耦数据处理过程之间的依赖关系,但其在数据处理逻辑关系的灵活定义方面较差。
从集成开发环境的数据管理来看,集成开发环境需要支持脚本语言、语法树(用于检查语法错误)、可视化模型、调试信息等多种数据类型,并需要支持数据格式的转换。以数据存储为中心的架构将数据存储在统一的中心存储器中,中心存储器能够表示多种数据格式,并能够为数据格式转换提供各种支持。管道-过滤器架构风格通常只能支持有限度的数据格式,并且在数据格式转换方面的灵活性较差。
[解析]本题主要考查考生对软件架构风格的理解与掌握,特别是针对实际应用问题,如何采用基于软件架构风格的系统软件架构设计。软件架构风格是指描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
本问题主要考查设计方案的比较与选型。题干明确指出从集成开发环境与用户的交互方式、集成开发环境的扩展性、集成开发环境的数据管理三个方面对两种方案进行比较,并说明选用李工方案的原因。
从集成开发环境与用户的交互方式看,根据题干描述,用户通常采用交互式的方式对脚本语言进行编辑、解释执行与调试。在这种情况下,采用以数据存储为中心的架构风格能够很好地支持交互式数据处理,而管道-过滤器架构风格则对用户的交互式数据处理支持有限。
从集成开发环境的扩展性来看,根据题干描述,要求实现各种编辑、语法检查、解释执行等多种功能的灵活组织、配置与替换。在这种情况下,采用以数据存储为中心的架构风格,以数据格式解耦各种功能之间的依赖关系,并可以灵活定义功能之间的逻辑顺序。管道-过滤器架构风格同样以数据格式解耦数据处理过程之间的依赖关系,但其在数据处理逻辑关系的灵活定义方面较差。
从集成开发环境的数据管理来看,集成开发环境需要支持脚本语言、语法树(用于检查语法错误)、可视化模型、调试信息等多种数据类型,并需要支持数据格式的转换。以数据存储为中心的架构将数据存储在统一的中心存储器中,中心存储器能够表示多种数据格式,并能够为数据格式转换提供各种支持。管道-过滤器架构风格通常只能支持有限度的数据格式,并且在数据格式转换方面的灵活性较差。
考生在回答上述问题时,不能仅仅列举教科书中对数据存储为中心的架构风格和管道-过滤器架构风格的特点描述,必须紧紧围绕题干对系统要求的描述,将系统要求与架构风格特点结合起来进行回答。
45、为了满足需求(2),应该采用解释器架构风格。具体来说,需要:①为可视化编程元素及其拖拽关系定义某种语言,并描述其语法与语义;②编写解释器对该语言进行解释;③生成对应的脚本语言程序。
为了满足需求(3),应该采用隐式调用架构风格。具体来说,首先需要定义“断点在调试过程中命中”这一事件,并实现当断点命中后的屏幕定位函数。集成开发环境维护一个事件注册表结构,将该事件与屏幕定位函数关联起来形成注册表中的一个记录项。在调试过程中,集成开发环境负责监听各种事件,当“断点在调试过程中命中”这一事件发生时,集成开发环境查找事件注册表,找到并调用屏幕定位函数,从而实现脚本语言编辑界面与调试代码的自动定位。本问题主要考查考生如何根据应用要求选择合适的架构风格。
需求(2)要求“集成开发环境需要提供一组可视化的编程界面,用户通过对界面元素拖拽和代码
填充的方式就可以完成功能插件核心业务流程的编写与组织”,这是一个对可视化开发过程的典型描述,而可视化开发的核心是如何定义并解释可视化编程语言,其核心应该是解释器架构风格。因此针对需求(2),应该采用解释器架构风格。具体来说,需要:①为可视化编程元素及其拖拽关系定义某种语言,并描述其语法与语义;②编写解释器对该语言进行解释;③生成对应的脚本语言程序。
需求(3)要求“在代码调试功能方面,集成开发环境需要实现在脚本语言编辑界面中的代码自动定位功能。具体来说,在调试过程中,编辑界面需要响应调试断点命中事件,并自动跳转到当前断点处所对应的代码。”从描述中可以看出,这是一个具有“事件触发”能力的功能描述,即由“断点命中”事件触发事先定义的“代码自动定位”功能。可以看出,这样的需求采用隐式调用架构风格最为恰当。具体来说,首先需要定义“断点在调试过程中命中”这一事件,并实现当断点命中后的屏幕定位函数。集成开发环境维护一个事件注册表结构,将该事件与屏幕定位函数关联起来形成注册表中的一个记录项。在调试过程中,集成开发环境负责监听各种事件,当“断点在调试过程中命中”这一事件发生时,集成开发环境查找事件注册表,找到并调用屏幕定位函数,从而实现脚本语言编辑界面与调试代码的自动定位。
46、企业业务架构
(2)逻辑信息架构(3)计算接口架构(4)分布式工程架构(5)技术选择架构
[解析]本题考查考生对典型分布式系统架构设计相关基础知识的掌握,要求考生了解基于ODP的架构设计过程中不同架构视点所关注的核心工作,充分理解现有分布式基础设施为分布式系统构建提供的各种基本支撑,掌握分布式对象互操作的基本原理与交互过程。
本问题考查考生对ODP架构视点的理解程度。
ISO定义的ODP参考模型为分布式计算进程提供了一个基本框架,它定义了分布式系统中包括开放性、整体性、灵活性、可塑性、联合性、可操作管理性、优质服务、安全性和透明性等在内的重要性质。其体系结构视点把抽象的符号或图表(如UML图表)运用到具体的体系结构开发任务中,每个视点有具体的建模目标和系统相关者。ODP从5个标准的视点组织分析了系统的架构,描述了同一系统的不同重要方面,这些视点包括企业业务架构、逻辑信息架构、计算接口架构、分布式工程架构和技术选择架构。
企业业务架构从IT的角度,对企业的业务结构、企业机构与业务的关系、企业内部的关系以及企业与外部机构的关系进行整理定义。该架构视点关注的核心内容包括业务目标、业务对象和业务策略等。
逻辑信息架构标识出系统必须知道什么,这种架构通过一个对象模型来表达,强调定义系统状态的属性。该架构视点关注的核心内容包括信息、对象、信息联合和信息行为等。
计算接口架构定义顶层的应用程序接口,这些是完全工程化的子系统边界的接口,这些接口的架构控制对于一个支持变化和控制复杂性的稳定的系统结构来说,是非常重要的。该架构视点关注的核心内容包括子系统的一致性、应用程序接口和接口行为等。
分布式工程架构定义了底层结构的需求,而独立于所选择的技术,它很好地解决了包括物理位置、系统规模可变性和通信服务质量等在内的复杂系统策略。该架构视点关注的核心内容包括软件分配、过程分配和服务质量等。
技术选择架构确定了实际的技术选择,所有其他视点都独立于这些决定,一个系统的选择过程包括初始概念机制的确认、具体机制的标识及最终实际机制的选择。该架构视点关注的核心内容包括概念性机制、具体的机制和实际的机制等。
基于上述分析,图中的(1)~(5)应分别填写企业业务架构、逻辑信息架构、计算接口架构、分布式工程架构和技术选择架构。
47、(1)构件管理支持:现有分布式基础设施一般通过构件容器为构件提供基本的运行环境;具体功能一般包括管理构件的实例及其生命周期、管理构件的元信息等。
现有分布式基础设施均提供了高层通信协议,以屏蔽节点的物理特性以及各节(2)互操作支持:
点在处理器、操作系统、程序设计语言等方面的异构性;基于互操作支持,开发人员在开发与调用分布式对象时,均不需自己编写处理底层通信的代码。
现有分布式基础设施通常将针对分布式软件的通用支持集成于一身,以公共(3)公共服务支持:
服务的形式提供给应用程序;其提供的常见公共服务包括命名服务、事务服务、安全服务、持久性服务等。
本问题考查考生对现有分布式基础设施的理解。
随着软件系统规模与复杂度的不断提高,软件开发过程中复杂度高、开发周期长、可靠性保证难等突出问题并没有得到根本缓解,而分布式软件面临更大的挑战,分布式软件所运行的网络环境具有明显的分布性、开放性、演化性、异构性、并发性等特征,因此分布式软件必须解决互操作、数据交换、分布性、可行性等一系列更复杂的问题。现有的分布式基础设施为三层/多层结构的分布式软件系统提供了各种开发支撑,由于三层结构的分布式软件的核心为中间层,因此支撑主要集中在对中间层开发的支撑上。现有基础设施为分布式软件系统提供的基本支持与分布式软件所运行的网络环境密切相关,具体可归结为提供构件运行环境、提供互操作机制与提供公共服务三个方面,基于分布式基础设施提供的支持,可以在更短时间构造出质量更高的分布式系统。
(1)提供构件运行环境:现有分布式基础设施均提供构件化的基本支持,支持方便开发与使用符合特定规范的构件(分布式对象)。中间件一般通过构件容器为构件提供基本的运行环境,具体功能一般包括管理构件的实例及其生命周期、管理构件的元信息等。
(2)提供互操作机制:因为分布式软件跨越了多台计算机,因此跨越网络的交互是每个分布式系统必须解决的首要问题,现有分布式基础设施均集成了早期远程过程/方法调用中间件的功能,提供了很强的高层通信协议以屏蔽节点的物理特性以及各节点在处理器、操作系统等方面的异构性。基于中间件的互操作支持,开发人员在开发与调用分布式对象时,均不需自己编写处理底层通信的代码。
(3)提供公共服务:除了互操作的支持外,现有分布式基础设施将早期各种中间件中针对分布式软件的通用支持集成于一身,以公共服务的形式提供给应用程序。公共服务又称为系统级服务,是指由中间件(应用服务器)实现的、应用程序使用的软件系统中共性程度高的功能成分。与应用程序中开发人员开发的构件实现的功能不同,公共服务通常不实现应用系统中具体的业务逻辑,而是为具体业务逻辑的实现提供共性的支持,而开发人员开发的构件则实现具体的业务逻辑。常见的公共服务包括命名服务、事务服务、安全服务、持久性服务等。48、(1)存根/桩
(2)框架或
(1)代理(2)存根
一次远程调用的过程如下。
①客户程序将调用请求发送给客户端桩,对于客户程序来说,桩就是服务程序在客户端的代理。②客户端桩负责将远程调用请求进行编组并发送给通信总线。③调用请求经通信总线传送到服务端框架。
④服务端框架将调用请求解组,并分派给真正的远程对象实现(服务程序)。⑤服务程序完成客户端的调用请求,将结果返回给服务端框架。⑥服务端框架将调用结果编组,并发送给通信总线。⑦调用结果经通信总线传送到客户端桩。
⑧客户端桩将调用结果解组并返回给客户程序,客户程序得到调用结果。本问题考查考生对现有分布式对象互操作机制的理解。
各种互操作通信协议,包括RPC、IIOP、DCOM通信协议、JRMP、RMI/IIOP等,均可以帮助应用程序完成编组与解组等跨越网络通信的底层工作。这些高层通信协议尽管具体的实现细节不尽相同,但是在实现方式上与开发模式上均采用了RPC中相同的通信模型与类似的开发模式,它们采用的通信模型称为存根/框架(也称为桩/框架或代理/存根)结构。
RPC是一种广泛使用的分布式应用程序处理方法。应用程序使用RPC来远程执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。需要注意的是,这里的“远程”既可以指不同的计算机,也可以指同一台计算机上的不同进程。一个RPC应用可分为两个部分,分别是服务器和客户。这里的“服务器”和“客户”是指逻辑上的进程,而不是指物理计算机。支持RPC的软件如图所示。
在图中,通信模块实现请求-应答协议,在客户和服务器之间传递请求和应答消息。服务器提供一个或多个远程过程,客户向服务器发出远程调用。服务器和客户可以位于同一台计算机,也可以位于不同的计算机,甚至可运行在不同的操作系统之上。它们通过网络进行通信,相应的存根(stub)过程和运行支持提供数据转换和通信服务,从而屏蔽不同的操作系统和网络协议。存根过程用来解码请求消息中的参数、调用相应的服务过程和编码应答消息中的返回值。服务过程实现服务接口中的过程。调度程序根据请求消息中的过程标识选择一个服务器存根过程。客户存根过程(也称为客户端桩)、服务器存根过程(Skeleton,也称为服务端框架)和调度程序都可由接口编译器根据服务的接口定义而生成。
在这里,RPC通信是同步的。如果采用线程的方式,则可以进行异步调用。在RPC模型中,客户和服务器只要具备了相应的RPC接口,并且具有RPC运行支持,就可以完成相应的互操作,而不必限制于特定的服务器。因此,RPC为分布式计算提供了强有力的支持。同时,RPC所提供的是基于过程的服务访问,客户与服务器进行直接连接,没有中间机构来处理请求,因此,也具有一定的局限性。例如,RPC通常需要一些网络细节以定位服务器;在客户发出请求的同时,要求服务器必须是活动的。
在该结构中,由客户端桩替客户端完成与服务端程序交互的具体底层通信工作,客户程序中的远程对象引用实际上是对本地桩的引用;而服务端框架则负责替服务端完成与客户端交互的具体底层通信工作。由于客户端桩与服务端框架分别位于客户端与服务端程序的进程内,因此开发人员开发客户端与服务端程序时只需分别与本进程内的桩与框架构件交互即可实现与远端的交互,而负责底层通信的客户端桩与服务端框架在开发过程中自动生成而非由开发人员编写,从而为开发人员省去了底层通信相关的开发工作。
在存根/框架机制的支撑下,客户程序与分布式对象之间按照以下8个步骤完成一次远程调用。①客户程序将调用请求发送给客户端桩,对于客户程序来说,桩就是服务程序在客户端的代理。②客户端桩负责将远程调用请求进行编组并发送给通信总线。③调用请求经通信总线传送到服务端框架。
④服务端框架将调用请求解纠,并分派给真正的远程对象实现(服务程序)。⑤服务程序完成客户端的调用请求,将结果返回给服务端框架。⑥服务端框架将调用结果编组,并发送给通信总线。⑦调用结果经通信总线传送到客户端桩。
⑧客户端桩将调用结果解组并返回给客户程序,客户程序得到调用结果。49、开放架构应具有以下4个基本特点。
①可移植性。各种计算机应用系统可在具有开放架构特性的各种计算机系统之间进行移植,不论这些计算机是否为同种型号、同种机型。
②可互操作性。如计算机网络中的各节点机都具有开放架构的特性,则该网上各节点机间可相互操作和资源共享。
③可剪裁性。如某个计算机系统是具有开放架构特性的,则在该系统的低档机上运行的应用系统应能在高档机上运行,原在高档机上运行的应用系统经剪裁后也可在低档机上运行。
④易获得性。在具有开放架构特性的机器上所运行的软件环境易于从多方获得,不受某个来源的控制。
[解析]本题主要考查对嵌入式软件开放式架构的理解与掌握。
本问题主要考查开放架构的基本特点。开放架构于20世纪80年代初提出,它与开放系统概念的提出和实现密切相关。它的发展是为了适应更大规模地推广计算机的应用和计算机网络化的需求,现仍处于继续发展和完善之中。开放架构具有应用系统的可移植性和可剪裁性、网络上各节点机间的互操作性和易于从多方获得软件的体系结构。
开放架构有如下四个基本特点。
①可移植性。各种计算机应用系统可在具有开放架构特性的各种计算机系统间进行移植,不论这些计算机是否为同种型号、同种机型。
②可互操作性。如计算机网络中的各节点机都具有开放架构的特性,则该网上各节点机间可相互操作和资源共享。
③可剪裁性。如某个计算机系统是具有开放架构特性的,则在该系统的低档机上运行的应用系统应能在高档机上运行,原在高档机上运行的应用系统经剪裁后也可在低档机上运行。
④易获得性。在具有开放架构特性的机器上所运行的软件环境易于从多方获得,不受某个来源的控制。
50、GOA中的接口与功能如表所示。GOA中的接口与功能接口功能描述接口名称序号实现处理机之间有效的通信方式,支持提供操作系统3X范例服务和操作系统扩展服务之间的接口(1)为任何处处理机中的服务功能提供各应用软件14D互操作服务的接口(应用到系统服务的直接接口)一组对等的物理资源之间数据交换接口/协议的要2求组成的接口,它能实现通(2)1L信链路物理资源访问(物理资源逻辑接口)一组软件(操作系统)访问硬件资源的服务接口。该组接口为软件与硬件资源之3(3)3D间定义了一个边界(系统服务到资源访问直接接口)提供在任何处理机中应用软件与其他应用软件之间4的接口。也包括不同系统的(4)4L应用软件之间的接口(应用逻辑接口)(5)物理资源与物理资源之间以及物理资源与外部51D环境之间的接口(物理资源到物理资源直接接口)6(6)在同一个或不同的处3L78理机之间,为处理机中的系统服务提供逻辑服务和远程服务的接口(系统服务逻辑接口)根据对等信息/数据交换要求。在同一处理机或不同处理机之间,资源访问服务(7)2L之间的对等操作服务的接口(资源访问服务逻辑接口)由服务于硬件指令机制和寄存器使用的资源访问服(8)2D务组成的接口(资源服务到物理资源直接接口)本问题主要考查对SAEAS4893《通用开放式架构(GOA)框架》标准的理解与掌握。考生需要在对题干描述以及示意图进行认真解读的基础上填写空白。
根据题干描述,硬件和接口的结构,以便在不同应用领域中实现系统功能。GOA框架规定了软件、
GOA框架规定了一组接口,其重要特点是建立了关键组件及组件间接口关系,这些接口的确定可用于支持软件的可移植性和可升级性,以满足功能增加和技术更新的要求。除操作系统服务与扩展操作系统之间的接口(3X)外,GOA将其他接口分为两类:即直接接口(iD(i=1,2,3,…))和逻辑接口(iL(i=1,2,3,…)),直接接口定义了信息传输方式;逻辑接口定义了对等数据交换的要求,逻辑接口没有定义真正的信息传输方式,其传输发生在一个或多个直接接口。
根据上述提示,可以看出如下几个功能特点。
·4D的功能是为任何处理机中的服务功能提供各应用软件互操作服务的接口(应用到系统服务的直接接口)。
·1L的功能是一组对等的物理资源之间数据交换接口/协议的要求组成的接口,它能实现通信链路物理资源访问(物理资源逻辑接口)。
·3D的功能是一组软件(操作系统)访问硬件资源的服务接口。该组接口为软件与硬件资源之间定义了一个边界(系统服务到资源访问直接接口)。
·4L的功能是提供在任何处理机中应用软件与其他应用软件之间的接口,也包括不同系统问的应用软件之间的接口(应用逻辑接口)。
·3L的功能是在同一个或不同的处理机之间,为处理机中的系统服务提供逻辑服务和远程服务的接口(系统服务逻辑接口)。
·2L的功能是根据对等信息/数据交换要求。在同一处理机或不同处理机之间,资源访问服务之间的对等操作服务的接口(资源访问服务逻辑接口)。
·2D的功能是由服务于硬件指令机制和寄存器使用的资源访问服务组成的接口(资源服务到物理资源直接接口)。
51、创建型模式主要用于创建对象,为设计类实例化新对象提供指南。
结构型模式主要用于处理类或对象的组合,对类如何设计以形成更大的结构提供指南。
行为型模式主要用于描述类或对缘的交互以及职责的分配,对类之间交互以及分配责任的方式提供指南。
[解析]本题主要考查系统建模技术中的设计模式。
设计模式是前人经验的总结,它使人们可以方便地复用成功的设计和架构。当人们在特定的环境下遇到特定类型的问题,采用他人已经使用过的一些成功的解决方案,一方面可以降低分析、设计和实现的难度,另一方面可以使系统具有更好的可复用性和灵活性,随着面向对象技术的发展和广泛应用,设计模式已经成为系统架构设计师所需掌握的基本技能之一。
设计模式根据目的和用途不同,可以分为创建型(Creational)模式、结构型(Structural)模式和行为型(Behavioral)模式三种。创建型模式主要用于创建对象,为设计类实例化新对象提供指南;结构型模式主要用于处理类或对象的组合,对类如何设计以形成更大的结构提供指南;行为型模式主要用于描述类或对象的交互以及职责的分配,对类之间交互以及分配责任的方式提供指南。52、创建型模式:构造器模式、原型模式。
结构型模式:适配器模式、外观模式、代理模式。
行为型模式:命令模式、中介模式、状态模式和策略模式。创建型模式对类的实例化过程进行了抽象,能够使得软件模块做到与对象的创建和组织无关。创建型模式隐藏了对象是如何被创建的和组合在一起的,以达到使整个系统独立的目的。创建型模式包括工厂方法模式、抽象工厂模式、原型模式、单例模式和构造器模式等。
结构型模式描述如何将类或对象组合在一起形成更大的结构。结构型模式描述两种不同的事物,即类与类的实例。结构型模式包括适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式等。
行为型模式是对在不同的对象之间划分责任和算法的抽象,它不仅关于类和对象,而且关于它们之间的相互作用。行为型模式包括职责链模式、命令模式、解释器模式、迭代器模式、中介模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式等。53、策略模式
解决方案:在具有公共接口的独立类中定义每个计算。可以利用该模式创建各种促销类,它们从同一个超类继承。每个类都有相同名称的标准接口方法,用于根据订单编号计算将要折扣的金额总数。计算每个促销的内部代码对促销类来说是完全不同的。
(2)适配器模式
解决方案:增加一个类作为适配器,转换类的接口到客户端类期望的另一个接口。实现一个适配器类,这个类为系统的其他部分提供了一个不变的方法供调用,为了集成不同商品供应商提供的税率计算类,编写一个适配器类的子类,包含调用购买类所需的代码。该子类将系统的调用映射到某个供应商的税率计算类。如果要更换供应商,那么只需要写一个新的适配器子类,其他保持不变。中不同的促销方法有不同的实现代码,在不同促销活动中需要能够替换实现代码,适合采用策略模式。策略模式是一种对象的行为型模式,定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,其目的是将行为和环境分隔,当出现新的行为时,只需要实现新的行为型模式。
设计要求(2)中不同商品供应商提供的税率计算类需要提供统一的方法调用接口,适合采用适配器模式。适配器模式将一个接口转换成客户希望的另一个接口,从而使接口不兼容的那些类可以一起工作。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在类结构型模式中,通过使用一个具体类将适配者适配到目标接口中;在对象适配器模式中,一个适配器可以将多个不同的适配者适配到同一个目标。
54、其原因主要是以下4个方面。
(1)用户响应时间慢。大型社交网络系统要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常大,往往要达到每秒上万次读/写请求。关系数据库应付上万次SQL查询还勉强可以,但是应付上万次SQL写数据请求,硬盘I/O就已经无法承受了。特别是涉及多表连接操作,会导致响应变慢。
(2)数据格式变化。大型社交网络系统随着用户的使用,会不断地增加新的功能,导致原有数据格式发生变化,甚至出现新的数据格式。但关系数据库中采用元组方式组织数据,难以使用新型数据格式,难以维护。
(3)数据容量超过设计上限。对于大型社交网络系统,往往会在很短时间内产生海量数据。关系数据库多采用中央数据存储,使得数据容量受限于前期设计的上限,很难实现数据容量的横向扩展。
(4)系统可用性差:关系数据库采用中央数据存储,容易成为系统的性能瓶颈,单点故障很容易导致系统崩溃,负载过高往往导致系统出现宕机现象。
[解析]本题主要考查考生对NoSQL数据库的理解与掌握情况。
随着互联网Web2.0网站的兴起,非关系型的数据库成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类
型的Web2.0纯动态网站已经显得力不从心,暴露出了以下很多难以克服的问题。
1.对数据库高并发读/写的需求
Web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读/写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是要应付上万次SQL写数据请求,硬盘I/O就已经无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求。
2.对海量数据的高效率存储和访问的需求对于大型的SNS网站,每天用户产生海量的用户动态,以某SNS网站为例,该网站每个月产生2.5亿条用户动态,对于关系数据库来说,在一张2.5亿条记录的表中进行SQL查询,效率是极其低下乃至不可忍受的。
3.对数据库的高可扩展性利高可用性的需求在基于Web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库却没有办法像Web服务器和应用服务器那样简单地通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移,为什么数据库不能通过不断地添加服务器节点来实现扩展呢?
在上面捉到的“三高”需求面前,关系数据库遇到了难以克服的障碍,而对于Web2.0网站来说,关系数据库的很多主要特性却往往无用武之地,例如以下情况。
①数据库事务一致性需求
很多Web实时系统并不要求严格的数据库事务,对读一致性的要求很低,有些场合对写一致性要求也不高。因此数据库事务管理成了数据库高负载下一个沉重的负担。
②数据库的写实时性和读实时性需求
对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出来这条数据的。并不要求这么高的实时性。
③对复杂的SQL查询,特别是多表关联查询的需求
任何大数据量的Web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询,特别是SNS类型的网站,从需求以及产品设计角度,就避免了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能被极大地弱化了。
因此,关系数据库在这些越来越多的应用场景下显得不那么合适了,为了解决这类问题的非关系数据库应运而生。
NoSQL(NotOnlySQL,不仅仅是SQL)提倡运用非关系型的数据存储,它打破了长久以来关系型数据库与ACID理论大统一的局面。NoSQL数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。
关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说,它也是关系型数据库性能瓶颈的一个因素。而非关系型数据库以键值对进行存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。
与关系型数据库相比,NoSQL数据库具有以下优点。①易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也在无形之间,在架构的层面上带来了可扩展的能力。
②大数据量,高性能
NoSQL数据库都具有非常高的读/写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用QueryCache,表每次更新Cache就失效。它是一种大粒度的Cache,在针对Web2.0交互频繁的应用时,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说性能要高很多了。
③灵活的数据模型
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库
里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦,这点在大数据量的Web2.0时代尤其明显。
④高可用
NoSQL在不太影响性能的情况,就可以方便地实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。
当然,NoSQL也存在很多缺点,例如,并未形成一定标准,各种产品层出不穷,内部混乱,各种项目还需时问来检验,缺乏相关专家技术的支持等。
主要考查对题干(1)~(4)出现问题的分析与理解情况,考生一定要紧紧围绕大型社交网络的特点,即海量用户、大量实时操作等特征进行论述。
55、,NoSQL数据库支持高并发数据访问,性能较高。
针对问题(2),NoSQL数据库的数据存储结构松散,能够灵活支持多种类型的数据格式。针对问题(3),NoSQL数据库能够支持海量数据的存储,且易于横向扩展。针对问题(4),NoSQL数据库基于分布式数据存储,不存在单点故障和性能瓶颈,系统可用性高。问题2承接问题1,主要考查如何结合实际场景,描述如何采用NoSQL数据库解决上述问题。注意需要有的放矢,不要发散。
56、该系统采用NoSQL数据库时可能存在以下的问题。
(1)NOSQL数据库的现有产品不够成熟,大多数产品处于初创期。
(2)NoSQL数据库并未形成一定的标准,产品种类繁多,缺乏官方支持。(3)NoSQL数据库不提供对SQL的支持,学习和应用迁移成本较高。
(4)NoSQL数据库支持的特性不够丰富,现有产品提供的功能比较有限。
问题3主要考查考生对NoSQL数据库缺点的理解。需要注意必须围绕题干中系统建设的特点和要求进行论述。
因篇幅问题不能全部显示,请点此查看更多更全内容