1、高级系统分析师 2012 下半年下午试题 2 及答案解析(总分:124.97,做题时间:90 分钟)一、试题一(总题数:1,分数:25.00)阅读以下关于软件架构风格的说明,根据要求回答下面问题。 说明 某软件公司为其新推出的字处理软件设计了一种脚本语言,专门用于开发该字处理软件的附加功能插件。为了提高该语言的编程效率,公司组织软件工具开发部门为脚本语言研制一套集成开发环境。软件工具开发部门根据字处理软件的特点,对集成开发环境进行了需求分析,总结出以下 3 项核心需求: (1)集成开发环境需要提供对脚本语言的编辑、语法检查、解释、执行和调试等功能的支持,并要实现各种功能的灵活组合、配置与替换。
2、 (2)集成开发环境需要提供一组可视化的编程界面,用户通过对界面元素拖拽和代码填充的方式就可以完成功能插件核心业务流程的编写与组织。 (3)在代码调试功能方面,集成开发环境需要实现在脚本语言编辑界面中的代码自动定位功能。具体来说,在调试过程中,编辑界面需要响应调试断点命中事件,并自动跳转到当前断点处所对应的代码。 针对上述需求,软件工具开发部门对集成开发环境的架构进行分析与设计,王工认为该集成开发环境应该采用管道-过滤器的架构风格实现,李工则认为该集成开发环境应该采用以数据存储为中心的架构风格来实现。公司组织专家对王工和李工的方案进行了评审,最终采用了李工的方案。(分数:25.00)(1).请
3、用 200 字以内的文字解释什么是软件架构风格,并从集成开发环境与用户的交互方式、集成开发环境的扩展性、集成开发环境的数据管理三个方面说明为什么最终采用了李工的设计方案。(分数:12.50)_(2).在对软件系统架构进行设计时,要对架构需求进行分析,针对特定需求选择最为合适的架构风格,因此实际的软件系统通常会混合多种软件架构风格。请对核心需求进行分析,说明为了满足需求(2)和(3),分别应采用何种架构风格,并概要说明采用相应架构风格后的架构设计过程。(分数:12.50)_二、试题二(总题数:1,分数:25.00)阅读以下关于分布式系统设计的说明,根据要求回答下面问题。 说明 某软件公司拟开发一
4、套电信领域的分布式系统,该系统后台多个功能模块同时运行时的计算负载较大,且需要控制不同的特定电信硬件设备,由于硬件体积和 I/O 端口冲突等原因,这些设备需要分散安装在多个不同的计算机系统中。该系统上线运行后将为企业最终用户提供 724 小时的不间断服务,而用户的单次接入服务往往需要后台多个模块共同协作完成。基于上述原因,该系统后台软件模块需分布在局域网内的多台计算机上。 项目组决定基于 ISO 的开放分布进程(ODP)规范来进行系统架构的设计与开发,近期项目组召开了多次会议,对架构设计阶段的关键问题进行了讨论分析。(分数:24.99)(1).ODP 从 5 个标准的视点组织分析系统的架构,这
5、些视点描述了同一系统的不同重要方面,请根据图 1中不同视点所关注的核心内容,将备选的架构视点填入图 1 中的(1)(5)。 (分数:8.33)_(2).在技术选择架构规划时,王工认为系统应基于现有分布式基础设施(分布式中间件)来构建,因为这样可以充分利用现有基础设施提供的各种支撑,在更短时间内构造出质量更高的分布式系统;而李工则认为可基于基本的进程间通信机制自主开发系统的支撑平台,这样可以避免对特定中间件的依赖,项目组经过认真讨论,最终采用了王工的方案。请用 400 字以内的文字,从构件管理支持、互操作支持以及公共服务支持三个方面说明现有分布式基础设施为构建分布式系统所提供的基本支撑。(分数:
6、8.33)_(3).由于系统后台模块的分布式特性,后台分布式对象之间的互操作机制是需要考虑的核心问题之一。如图所示是当前分布式基础设施中支持分布式对象互操作的基本机制,请将相应部件名称填入图中(1)、(2)处;基于图 2 给出的结构,用 300 字以内的文字说明完成一次分布式对象调用的详细步骤。 (分数:8.33)_三、试题三(总题数:1,分数:25.00)请详细阅读有关嵌入式软件架构设计方面的描述,回答下面问题。 说明 在嵌入式系统中,软件采用开放式架构已成为新的发展趋势。软件架构设计的优劣将直接影响软件的重用和移植能力。 某软件公司主要从事宇航领域的嵌入式软件研发工作。经 20 多年的发展
7、,其软件产品已被广泛应用于各种航天飞行器中。该公司积累了众多成熟软件,但由于当初没有充分考虑软件的架构,原有软件无法再被利用,为适应嵌入式软件技术的发展需要,该公司决策层决定成立宇航嵌入式软件开放式架构研究小组,为公司完成开放式架构的定义与设计,确保公司软件资源能得到充分利用。 研究小组查阅了大量的国外资料和标准,最终将研究重点集中在了 SAEAS4893通用开放式架构(GOA)框架标准,下图给出了 GOA 定义的架构图。 (分数:25.00)(1).请用 300 字以内的文字简要说明开放式架构的 4 个基本特点。(分数:12.50)_(2).如上图所示,GOA 框架规定了软件、硬件和接口的结
8、构,以在不同应用领域中实现系统功能。GOA 框架规定了一组接口,其重要特点是建立了关键组件及组件间的接口关系,这些接口的确定可用于支持软件的可移植性和可升级性,以满足功能的增加和技术的更新要求。除操作系统服务与扩展操作系统之间的接口(3x)外,GOA 将其他接口分为两类:即直接接口(iD(i=1,2,3)和逻辑接口(iL(i=1,2,3),直接接口定义了信息传输方式;逻辑接口定义了对等数据交换的要求,逻辑接口没有定义真正的信息传输方式,其传输发生在一个或多个直接接口。根据上图所标注的接口在框架中的具体位置,请填写下表中的 8处空白。 GOA 中的接口与功能 序号 接口功能描述 接口名称 范例
9、实现处理机之间有效的通信方式,支持提供操作系统服务和操作系统扩展服务之间的接口 3X 1 _ 4D _ 2 是一组对等的物理资源之间数据交换接口/协议的要求组成的接口,它能实现通信链路物 理资源访问(物理资源逻辑接口) _ 3 一组软件(操作系统)访问硬件资源的服务接口。该组接口为软件与硬件资源之间定义了 一个边界(系统服务到资源访问直接接口) _ 4 提供在任何处理机中应用软件与其他应用软件之间的接口,也包括不同系统间的应用软件 之间的接口(应用逻辑接口) 5 _ 1D 6 _ 3L _ 7 根据对等信息/数据交换要求。在同一处理机或不同处理机间,资源访问服务之间的对等操 作服务的接口(资源
10、访问服务逻辑接口) _ 8 由服务于硬件指令机制和寄存器使用的资源访问服务组成的接口(资源服务到物理资源直 接接口) (分数:12.50)_四、试题四(总题数:1,分数:25.00)阅读以下关于面向对象系统建模的叙述,根据要求回答下面问题。 说明 某软件企业为影音产品销售公司 W 开发一套在线销售系统,以提升服务的质量和效率。项目组经过讨论后决定采用面向对象方法开发该系统。在设计建模阶段需要满足以下设计要求: (1)W 公司经常进行促销活动。根据不同的条件(如订单总额、商品数量、产品种类等),公司可以提供百分比折扣或现金减免等多种促销方式,以供提交订单的用户选择。实现每种促销活动的代码量很大,
11、且会随促销策略的不同而经常修改。系统设计中需要考虑现有的促销和新的促销,而不用经常地重写控制器类代码。 (2)该在线销售系统需要计算每个订单的税率,不同商品的税率及计算方式会有所区别。所以 W 公司决定在系统中直接调用不同商品供应商提供的税率计算类,但每个供应商的类提供了不同的调用方法。系统设计中需要考虑如果公司更换了供应商,应该尽可能少地在系统中修改或创建新类。 项目组架构师决定采用设计模式来满足上述设计要求,并确定从当前已经熟练掌握的设计模式中进行选择,这些设计模式包括:适配器模式(Adapter)、构造器模式(Builder)、命令模式(Command)、外观模式(Facade)、中介模
12、式(Mediator)、原型模式(Prototype)、代理模式(Proxy)、状态模式(State)和策略模式(Strategy)等。(分数:24.99)(1).设计模式按照其应用模式可以分为三类:创建型、结构型和行为型,请用 200 字以内的文字说明三者的作用。(分数:8.33)_(2).请将项目组已经掌握的设计模式按照其作用分别归类到创建型、结构型和行为型模式中。(分数:8.33)_(3).针对题目中所提出的设计要求(1)和(2),项目组应该分别选择何种设计模式?请分别用 200 字以内的文字说明具体的解决方案。(分数:8.33)_五、试题五(总题数:1,分数:25.00)请详细阅读有关
13、数据架构方面的描述,根据要求回答下面问题。 说明 某软件公司欲开发一个基于 Web 2.0 的大型社交网络系统。就该系统的数据架构而言,李工决定采用公司熟悉的数据架构,使用通用的商用关系型数据库,系统内部数据采用中央集中方式存储。 该系统投入使用后,初期用户数量少,系统运行平稳。6 个月后,用户数出现了爆炸式增长,系统暴露出诸多问题,集中表现在: (1)用户执行读写操作时,响应时间均变得很慢。 (2)随着系统功能的扩充,原有数据格式发生变化,又出现新的数据格式,维护困难。 (3)数据容量很快超过系统原有的设计上限,数据库扩容困难。 (4)软件系统不断出现宕机,整个系统可用性较差。 经过多次会议
14、讨论,公司的王工建议采用 NoSQL 数据库来替代关系数据库,以解决上述问题。但李工指出NoSQL 数据库出现时间不长,在使用上可能存在风险。公司技术人员对 NoSQL 数据库产品进行了认真测试,最终决定采用 NoSQL 数据库来替代现有的数据库系统。(分数:24.99)(1).分别解释产生问题(1)(4)的原因。(分数:8.33)_(2).请针对问题(1)(4),分别指出 NoSQL 数据库的哪些特点促使公司最终采用了 NoSQL 数据库。(分数:8.33)_(3).请指出该系统采用 NoSQL 数据库时可能存在的问题。(分数:8.33)_高级系统分析师 2012 下半年下午试题 2 答案解
15、析(总分:124.97,做题时间:90 分钟)一、试题一(总题数:1,分数:25.00)阅读以下关于软件架构风格的说明,根据要求回答下面问题。 说明 某软件公司为其新推出的字处理软件设计了一种脚本语言,专门用于开发该字处理软件的附加功能插件。为了提高该语言的编程效率,公司组织软件工具开发部门为脚本语言研制一套集成开发环境。软件工具开发部门根据字处理软件的特点,对集成开发环境进行了需求分析,总结出以下 3 项核心需求: (1)集成开发环境需要提供对脚本语言的编辑、语法检查、解释、执行和调试等功能的支持,并要实现各种功能的灵活组合、配置与替换。 (2)集成开发环境需要提供一组可视化的编程界面,用户
16、通过对界面元素拖拽和代码填充的方式就可以完成功能插件核心业务流程的编写与组织。 (3)在代码调试功能方面,集成开发环境需要实现在脚本语言编辑界面中的代码自动定位功能。具体来说,在调试过程中,编辑界面需要响应调试断点命中事件,并自动跳转到当前断点处所对应的代码。 针对上述需求,软件工具开发部门对集成开发环境的架构进行分析与设计,王工认为该集成开发环境应该采用管道-过滤器的架构风格实现,李工则认为该集成开发环境应该采用以数据存储为中心的架构风格来实现。公司组织专家对王工和李工的方案进行了评审,最终采用了李工的方案。(分数:25.00)(1).请用 200 字以内的文字解释什么是软件架构风格,并从集
17、成开发环境与用户的交互方式、集成开发环境的扩展性、集成开发环境的数据管理三个方面说明为什么最终采用了李工的设计方案。(分数:12.50)_正确答案:()解析:软件架构风格是描述某一类特定应用领域中软件系统的组织方式和惯用模式分)。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义 从集成开发环境与用户的交互方式看,用户通常采用交互式的方式对脚本语言进行编辑、解释执行与调试。在这种情况下,采用以数据存储为中心的架构风格能够很好地支持交互式数据处理;而管道-过滤器架构风格则对用户的交互式数据处理支持有限 从集成开发环境的扩展性来看,核心需求(1)中要求实现各种
18、编辑、语法检查、解释、执行等多种功能的灵活组织、配置与替换。在这种情况下,采用以数据存储为中心的架构风格,以数据格式解耦各种功能之间的依赖关系,并可以灵活定义功能之间的逻辑顺序;管道-过滤器架构风格同样以数据格式解耦数据处理过程之间的依赖关系,但其在数据处理逻辑关系的灵活定义方面较差从集成开发环境的数据管理看,集成开发环境需要支持脚本语言、语法树(用于检查语法错误)、可视化模型、调试信息等多种数据类型,并需要支持数据格式的转换。以数据存储为中心的架构将数据存储在统一的中心存储器中,中心存储器能够表示多种数据格式,并能够为数据格式转换提供各种支持;而管道-过滤器架构风格通常只能支持有限度的数据格
19、式,并且在数据格式转换方面的灵活性较差 根据卡内基梅隆大学软件工程研究所等权威机构的定义,软件架构风格是描述某一类特定应用领域中软件系统的组织方式和惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。 管道-过滤器架构风格:每个构件都有一组输入和输出,构件读取输入的数据流,经过内部处理,产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,包括通过计算和增加信息丰富数据、通过浓缩和删除精炼数据、通过改变记录方式转化数据、递增地转化数据等。在输入被完全消费之前,输出便产生了。这里构件被称为过滤器,连接件就是数据流传输的管道,将一个过滤器的
20、输出传到另一个过滤器的输入。该架构风格对用户的交互式数据处理支持有限;以数据格式解耦数据处理过程之间的依赖关系,但其在数据处理逻辑关系的灵活定义方面较差;通常只能支持有限度的数据格式,并且在数据格式转换方面的灵活性较差。 依题意,从集成开发环境与用户的交互方式看,用户通常采用交互式的方式对脚本语言进行编辑、解释执行与调试。在这种情况下,采用以数据存储为中心的架构风格能够很好地支持交互式数据处理。 从集成开发环境的扩展性看,系统核心需求(1)中要求实现各种编辑、语法检查、解释、执行等多种功能的灵活组织、配置与替换。在这种情况下,采用以数据存储为中心的架构风格,以数据格式解耦各种功能之间的依赖关系
21、,并可以灵活定义功能之间的逻辑顺序。 从集成开发环境的数据管理看,集成开发环境需要支持脚本语言、语法树(用于检查语法错误)、可视化模型、调试信息等多种数据类型,并需要支持数据格式的转换。以数据存储为中心的架构将数据存储在统一的中心存储器中,中心存储器能够表示多种数据格式,并能够为数据格式转换提供各种支持。(2).在对软件系统架构进行设计时,要对架构需求进行分析,针对特定需求选择最为合适的架构风格,因此实际的软件系统通常会混合多种软件架构风格。请对核心需求进行分析,说明为了满足需求(2)和(3),分别应采用何种架构风格,并概要说明采用相应架构风格后的架构设计过程。(分数:12.50)_正确答案:
22、()解析:对于核心需求(2),系统应采用解释器架构风格。其架构设计过程是:为可视化编程元素及其拖拽关系定义某种语言,并描述其语法与语义;编写解释器对该语言进行解释;生成对应的脚本语言程序 对于核心需求(3),系统应采用隐式调用架构风格。其架构设计过程是:先定义“断点在调试过程中命中”这一事件,并实现当断点命中后的屏幕定位函数;集成开发环境维护一个事件注册表结构,将该事件与屏幕定位函数关联起来形成注册表中的一个记录项;在调试过程中,集成开发环境负责监听各种事件,当“断点在调试过程中命中”这一事件发生时,集成开发环境查找事件注册表,找到并调用屏幕定位函数,从而实现脚本语言编辑界面与调试代码的自动定
23、位 解释器架构风格:一个解释器通常包括完成解释工作的解释引擎、一个包含将被解释的代码的存储区、一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行的进度的数据结构。具有解释器风格的软件中含有一个虚拟机,可以仿真硬件的执行过程和一些关键应用;其缺点是执行效率较低。依题意,系统核心需求(2)是一个对可视化开发过程的典型描述,而可视化开发的核心是如何定义并解释可视化编程语言。因此为了满足核心需求(2),应该采用解释器架构风格。其架构设计过程是:为可视化编程元素及其拖拽关系定义某种语言,并描述其语法与语义;编写解释器对该语言进行解释;生成对应的脚本语言程序。 事件驱动架构风格:构件不直
24、接调用一个过程,而是触发或广播一个或多个事件。系统中其他构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程。一个事件的触发就导致了另一个模块中过程的调用。这种风格中的构件是非命名的过程,它们之间交互的连接件往往是以过程之间的隐式调用(Implicit Invocation)来实现。基于事件的隐式调用风格的主要优点是为软件重用提供了强大的支持,为构件的维护和演化带来了方便;其缺点是构件放弃了对系统计算的控制。依题意,系统核心需求(3)是一个具有“事件触发”能力的功能描述,即由“断点命中”事件触发事先定义的“代码自动定位”功能。因此为了满足核心需求(3),
25、应该采用隐式调用架构风格。其架构设计过程是:先定义“断点在调试过程中命中”这一事件,并实现当断点命中后的屏幕定位函数;集成开发环境维护一个事件注册表结构,将该事件与屏幕定位函数关联起来形成注册表中的一个记录项;在调试过程中,集成开发环境负责监听各种事件,当“断点在调试过程中命中”这一事件发生时,集成开发环境查找事件注册表,找到并调用屏幕定位函数,从而实现脚本语言编辑界面与调试代码的自动定位。二、试题二(总题数:1,分数:25.00)阅读以下关于分布式系统设计的说明,根据要求回答下面问题。 说明 某软件公司拟开发一套电信领域的分布式系统,该系统后台多个功能模块同时运行时的计算负载较大,且需要控制
26、不同的特定电信硬件设备,由于硬件体积和 I/O 端口冲突等原因,这些设备需要分散安装在多个不同的计算机系统中。该系统上线运行后将为企业最终用户提供 724 小时的不间断服务,而用户的单次接入服务往往需要后台多个模块共同协作完成。基于上述原因,该系统后台软件模块需分布在局域网内的多台计算机上。 项目组决定基于 ISO 的开放分布进程(ODP)规范来进行系统架构的设计与开发,近期项目组召开了多次会议,对架构设计阶段的关键问题进行了讨论分析。(分数:24.99)(1).ODP 从 5 个标准的视点组织分析系统的架构,这些视点描述了同一系统的不同重要方面,请根据图 1中不同视点所关注的核心内容,将备选
27、的架构视点填入图 1 中的(1)(5)。 (分数:8.33)_正确答案:()解析:(1)企业业务架构 (2)逻辑信息架构 (3)计算接口架构 (4)分布式工程架构 (5)技术选择架构 系统架构反映了功能在系统构件中的分布、基础设施相关技术、架构设计模式等,它包含了架构的原则和方法、构件关系与约束,并能支持迭加或增量开发。以软件架构为中心的开发过程是以质量和风险驱动的,最终提供一个稳定、低风险的系统架构,并满足客户的需求(包含潜在需求)。开放分布进程的参考模型(RM-ODP)是一个 ISO 标准,定义了分布系统的重要性质:开放性、整体性、灵活性、可塑性、联合性、可操作管理性、优质服务、安全性、透
28、明性。 ODP 从 5 个标准的视点组织分析了系统的架构,描述了同一系统的不同重要方面,这些视点包括企业业务架构、逻辑信息架构、计算接口架构、分布式工程架构和技术选择架构。 企业业务架构从 IT 的角度,对企业的业务结构、企业机构与业务的关系、企业内部的关系以及企业与外部机构的关系进行整理定义。该架构视点关注的核心内容包括:企业的业务和战略目标、近期/中期/长远目标、企业的组织结构、业务对象、业务策略(包含责任、许可、禁止三类明确的表达方式)、各类业务之间的关系、组织机构与业务的关系、企业与外部机构的关系等。 逻辑信息架构(信息视点)标识出系统必须知道什么。该架构通过一个对象模型来表达,强调定
29、义系统状态的属性。该架构视点关注的核心内容包括:信息、对象、信息联合和信息行为等。 计算接口架构定义顶层的应用程序接口,这些是完全工程化的子系统边界的接口。这些接口的架构控制对于一个支持变化和控制复杂性的稳定的系统结构而言,是非常重要的。该架构视点关注的核心内容包括:子系统的一致性、应用程序接口和接口行为等。 分布式工程架构定义了底层结构的需求,而独立于所选择的技术,它很好地解决了包括物理位置、系统规模可变性和通信服务质量等在内的复杂系统策略。该架构视点关注的核心内容包括:软件分配、过程分配和服务质量等。 技术选择架构确定了实际的技术选择,所有其他视点都独立于这些决定。一个系统的选择过程包括初
30、始概念机制的确认、具体机制的标识及最终实际机制的选择。该架构视点关注的核心内容包括:概念性机制、具体的机制和实际的机制等。(2).在技术选择架构规划时,王工认为系统应基于现有分布式基础设施(分布式中间件)来构建,因为这样可以充分利用现有基础设施提供的各种支撑,在更短时间内构造出质量更高的分布式系统;而李工则认为可基于基本的进程间通信机制自主开发系统的支撑平台,这样可以避免对特定中间件的依赖,项目组经过认真讨论,最终采用了王工的方案。请用 400 字以内的文字,从构件管理支持、互操作支持以及公共服务支持三个方面说明现有分布式基础设施为构建分布式系统所提供的基本支撑。(分数:8.33)_正确答案:
31、()解析:(1)构件管理支持:现有分布式基础设施一般通过构件容器为构件提供基本的运行环境;具体功能一般包括管理构件的实例及其生命周期、管理构件的元信息等 (2)互操作支持:现有分布式基础设施均提供了高层通信协议,以便屏蔽节点的物理特性以及各节点在处理器、操作系统、程序设计语言等方面的异构性;基于互操作支持,开发人员在开发与调用分布式对象时,均不需自己编写处理底层通信的代码 (3)公共服务支持:现有分布式基础设施通常将针对分布式软件的通用支持集成于一身,以公共服务的形式提供给应用程序;其提供的常见公共服务包括命名服务、事务服务、安全服务、持久性服务等(答题时可以围绕以上内容进行具体描述, 分布式
32、软件所运行的网络环境具有明显的分布性、开放性、演化性、异构性、并发性等特征,因此分布式软件必须解决互操作、数据交换、分布性、可行性等一系列更复杂的问题。现有的分布式基础设施典型地为三层/多层结构的分布式软件系统提供各种开发支撑,因为三层结构的分布式软件的核心为中间层,所以支撑主要集中在对中间层开发的支撑上。现有基础设施为分布式软件系统提供的基本支持与分布式软件所运行的网络环境密切相关,具体可归纳为提供构件运行环境、提供互操作机制与提供公共服务 3 个方面,基于分布式基础设施提供的支持,可以在更短时间内构造出质量更高的分布式系统。 (1)提供构件运行环境:现有分布式基础设施均提供构件化的基本支持
33、,支持方便开发与使用符合特定规范的构件(分布式对象)。中间件一般通过构件容器为构件提供基本的运行环境;具体功能一般包括管理构件的实例及其生命周期、管理构件的元信息等。 (2)提供互操作机制:由于分布式软件跨越了多台计算机,因此跨越网络的交互是每个分布式系统必须解决的首要问题。现有分布式基础设施均集成了早期远程过程/方法调用中间件的功能,提供了很强的高层通信协议,以便屏蔽节点的物理特性以及各节点在处理器、操作系统、程序设计语言等方面的异构性。基于中间件的互操作支持,开发人员在开发与调用分布式对象时,均不需自己编写处理底层通信的代码。 (3)提供公共服务:除了互操作的支持外,现有分布式基础设施将早
34、期各种中间件中针对分布式软件的通用支持集成于一身,以公共服务(或系统级服务)的形式提供给应用程序。公共服务是指由中间件(应用服务器)实现的、应用程序使用的软件系统中共性程度高的功能成分。与应用程序中开发人员开发的构件实现的功能不同,公共服务通常不实现应用系统中的具体业务逻辑,而是为具体业务逻辑的实现提供共性的支持,而开发人员开发的构件则实现具体的业务逻辑。常见的公共服务包括命名服务、事务服务、安全服务、持久性服务等。(3).由于系统后台模块的分布式特性,后台分布式对象之间的互操作机制是需要考虑的核心问题之一。如图所示是当前分布式基础设施中支持分布式对象互操作的基本机制,请将相应部件名称填入图中
35、(1)、(2)处;基于图 2 给出的结构,用 300 字以内的文字说明完成一次分布式对象调用的详细步骤。 (分数:8.33)_正确答案:()解析:(1)存根(或桩) (2)框架(或(1)代理, (2)存根) 一次远程调用过程如下 客户程序将调用请求发送给客户端桩,对于客户程序而言,桩就是服务程序在客户端的代理。 客户端桩负责将远程调用请求进行编组并发送给通信总线。 调用请求经通信总线传送到服务端框架。 服务端框架将调用请求解组并分派给真正的远程对象实现(服务程序)。 服务程序完成客户端的调用请求,将结果返回给服务端框架。 服务端框架将调用结果编组并发送给通信总线。 调用结果经通信总线传送到客户
36、端桩。 客户端桩将调用结果解组并返回给客户程序,客户程序得到调用结果 包括 RPC、IIOP、DCOM 通信协议、JRMP、RMI/IIOP 在内的各种互操作通信协议均可以帮助应用程序完成编组与解组等跨越网络通信的底层工作。尽管这些高层通信协议的具体实现细节不尽相同,但是在实现方式上与开发模式上均采用了 RPC 中相同的通信模型与类似的开发模式,它们采用的通信模型称为存根/框架(也称为桩/框架,或代 N/存根)结构。 在存根/框架结构中,由客户端桩(Stub)替客户端完成与服务端程序交互的具体底层通信工作,客户程序中的远程对象引用实际上是对本地桩的引用;而服务端框架(Skeleton)负责替服
37、务端完成与客户端交互的具体底层通信工作。由于客户端桩与服务端框架分别位于客户端与服务端程序的进程内,因此开发人员开发客户端与服务端程序时,只需分别与本进程内的桩与框架构件交互即可实现与远端的交互,而负责底层通信的客户端桩与服务端框架在开发过程中自动生成而非由开发人员编写,从而为开发人员省去底层通信相关的开发工作。图 2 中(1)处应填入存根(或桩);(2)处应填入框架。 在存根/框架机制的支撑下,客户程序与分布式对象之间按照以下步骤完成一次远程调用: 客户程序将调用请求发送给客户端桩,对于客户程序而言,桩就是服务程序在客户端的代理。 客户端桩负责将远程调用请求进行编组并发送给通信总线。 调用请
38、求经通信总线传送到服务端框架。 服务端框架将调用请求解组并分派给真正的远程对象实现(服务程序)。 服务程序完成客户端的调用请求,将结果返回给服务端框架。 服务端框架将调用结果编组并发送给通信总线。 调用结果经通信总线传送到客户端桩。 客户端桩将调用结果解组并返回给客户程序,客户程序得到调用结果。三、试题三(总题数:1,分数:25.00)请详细阅读有关嵌入式软件架构设计方面的描述,回答下面问题。 说明 在嵌入式系统中,软件采用开放式架构已成为新的发展趋势。软件架构设计的优劣将直接影响软件的重用和移植能力。 某软件公司主要从事宇航领域的嵌入式软件研发工作。经 20 多年的发展,其软件产品已被广泛应
39、用于各种航天飞行器中。该公司积累了众多成熟软件,但由于当初没有充分考虑软件的架构,原有软件无法再被利用,为适应嵌入式软件技术的发展需要,该公司决策层决定成立宇航嵌入式软件开放式架构研究小组,为公司完成开放式架构的定义与设计,确保公司软件资源能得到充分利用。 研究小组查阅了大量的国外资料和标准,最终将研究重点集中在了 SAEAS4893通用开放式架构(GOA)框架标准,下图给出了 GOA 定义的架构图。 (分数:25.00)(1).请用 300 字以内的文字简要说明开放式架构的 4 个基本特点。(分数:12.50)_正确答案:()解析:可移植性:各种计算机应用系统可在具有开放架构特性的各种计算机
40、系统间进行移植,不论这些计算机是否同种型号、同种机型。 可互操作性:如计算机网络中的各结点机都具有开放架构的特性,则该网上各结点机间可相互操作和资源共享。 可剪裁性:如某个计算机系统是具有开放架构特性的,则在该系统的低档机上运行的应用系统应能在高档机上运行,原在高档机上运行的应用系统经剪裁后也可在低档机上运行。 易获得性:在具有开放架构特性的机器上所运行的软件环境易于从多方获得,不受某个来源所控制 开放式架构(Open System Architecture)是具有应用系统的可移植性和可剪裁性、网络上各结点机间的互操作性和易于从多方获得软件的体系结构。它是构成开放应用体系结构(OAA)的技术基
41、础。 为满足建立和实现开放系统的需要,开放式架构应具有以下 4 个特点: 可移植性。各种计算机应用系统可在具有开放结构特性的各种计算机系统间进行移植,不论这些计算机是否同种型号、同种机型。 可互操作性。如果计算机网络中的各结点机都具有开放结构的特性,则该网上各结点机间可相互操作和资源共享,不论各结点机是否同种型号、同种机型。 可剪裁性。如果某个计算机系统是具有开放结构特性的,则在该系统的低档机上运行的应用系统应能在高档机上运行,原在高档机上运行的应用系统经剪裁后也可在低档机上运行。 易获得性。在具有开放结构特性的机器上所运行的软件环境易于从多方获得,不受某个来源所控制。 为了全面实现上述开放系
42、统的 4 个特性,首先要保证实现系统的可移植性和互操作性。为实现可移植性,首先要建立起符合开放系统概念的开发平台,在这个开发平台上所开发的应用系统都可以在另一个符合开放系统概念的平台上,以同样的工作环境去编译和运行原应用系统,不必对源程序作任何修改。为实现互操作性,首先应实现通信时的互操作性,即应实现开放系统的互连环境(OSIE)。(2).如上图所示,GOA 框架规定了软件、硬件和接口的结构,以在不同应用领域中实现系统功能。GOA 框架规定了一组接口,其重要特点是建立了关键组件及组件间的接口关系,这些接口的确定可用于支持软件的可移植性和可升级性,以满足功能的增加和技术的更新要求。除操作系统服务
43、与扩展操作系统之间的接口(3x)外,GOA 将其他接口分为两类:即直接接口(iD(i=1,2,3)和逻辑接口(iL(i=1,2,3),直接接口定义了信息传输方式;逻辑接口定义了对等数据交换的要求,逻辑接口没有定义真正的信息传输方式,其传输发生在一个或多个直接接口。根据上图所标注的接口在框架中的具体位置,请填写下表中的 8处空白。 GOA 中的接口与功能 序号 接口接口功能描述 名称 范例 实现处理机之间有效的通信方式,支持提供操作系统服务和操作系统扩展服务之间的接口 3X 1 _ 4D _ _ 2 是一组对等的物理资源之间数据交换接口/协议的要求组成的接口,它能实现通信链路物 理资源访问(物理资源逻辑接口)_ 3 一组软件(操作系统)访问硬件资源的服务接口。该组接口为软件与硬件资源之间定义了 一个边界(系统服务到资源访问直接接口)_ 4 提供在任何处理机中应用软件与其他应用软件之间的接口,也包括不同系统间的应用软件 之间的接口(应用逻辑接口)5 _ 1D 6 _ 3L _ 7 根据对等信息/数据交换要求。在同一处理机或不同处理机间,资源访问服务之间的对等操 作服务的接口(资源访问服务逻辑接口)_ 8 由服务于硬件指令机制和寄存器使用的资源访问服务组成的接口(资源服务到物理资源直 接接口)(分数:12.