高级系统架构设计师下午试题Ⅰ4真题含答案与解析交互.docx
《高级系统架构设计师下午试题Ⅰ4真题含答案与解析交互.docx》由会员分享,可在线阅读,更多相关《高级系统架构设计师下午试题Ⅰ4真题含答案与解析交互.docx(24页珍藏版)》请在冰点文库上搜索。
![高级系统架构设计师下午试题Ⅰ4真题含答案与解析交互.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/dd8d4b4c-1e1e-49ad-b5ca-89cf04edb9de/dd8d4b4c-1e1e-49ad-b5ca-89cf04edb9de1.gif)
高级系统架构设计师下午试题Ⅰ4真题含答案与解析交互
高级系统架构设计师下午试题(Ⅰ)-4
(总分187.5,做题时间90分钟)
试题一
1.
企业应用集成(EnterpriseApplicationIntegration,EAI)是每个企业都必须要面对的实际问题。
企业服务总线(EnterpriseServiceBus,ESB)是一种体系结构模式,支持通信各方间的服务交互的虚拟化和管理。
它充当面向服务架构(Service-OrientedArchitecture,SOA)中服务提供者和请求者之间的连接服务的中间层。
与传统的EAI技术相比,ESB采用总线式的体系结构集成多个应用系统,基于开放标准实现其内部核心功能,并支持快速加入新的应用到已有的集成环境中。
请围绕“ESB模式在企业应用集成中的应用”论题,依次从以下3个方面进行论述。
1.要叙述你参与实施的企业应用集成项目(包括业务背景、组织结构、现有应用系统的分布,以及采用的技术等),以及你所担任的主要工作。
2.详细论述ESB的核心功能和典型结构;列举目前流行的ESB产品;指出你参与的项目所选择的ESB产品,并从ESB核心功能的角度说明选择该产品的理由。
3.阐述在使用ESB技术进行应用集成过程中所遇到的问题及解决办法,简要叙述你进一步应用ESB模式的有关设想。
分值:
18.75
答案:
1.简要介绍你参与规划、设计、实施和管理的企业应用集成项目的基本情况(包括业务背景、组织结构、现有应用系统的分布和采用的技术等),简要说明自己在该项目中的角色、所承担的主要任务及开展的主要工作。
论文叙述自己参与管理和实施的企业应用集成项目应有一定的规模,自己在该项目中担任的主要工作应有一定的分量。
2.企业服务总线(EnterpriseServiceBus,ESB)是由中间件技术实现的支持面向服务架构(SOA)的基础软件平台,支持异构环境中的服务以基于消息和事件驱动模式的交互,并且具有适当的服务质量和可管理性。
ESB技术的基本思想是,提供一种标准的软件底层架构,各种程序组件能够以服务单元的方式“插入”到该平台上运行,并且组件之间能够以标准的消息通信方式来进行交互。
换而言之,ESB是传统中间件技术与XML、Web服务等技术结合的产物。
ESB是一个集成平台,将现有的IT设施和应用系统暴露为服务。
由于ESB基于开放标准,企业的遗产系统使用的私有技术能够基于开放和现代的技术(例如Web服务和消息机制等)暴露为服务。
1)其核心功能包括位置透明性、传输协议转换、消息转换、消息路由、消息增强、安全,以及监控和管理7项内容
(1)位置透明性(LocationTransparency)。
位置透明性是指当一个服务消费者与一个服务提供者通过ESB进行通信时,服务消费者不需要知道服务提供者的实际位置,这意味着服务消费者与服务提供者之间是解耦合的。
(2)传输协议转换(TransportProtocolConversion)。
当服务请求者与服务提供者采用不同的传输协议时,ESB能够将基于输入传输协议格式的数据转换为不同输出传输协议格式的数据。
(3)消息转换(MessageTransformation)。
在服务请求者和服务提供者进行交互时,ESB基于开发标准(XLST和XPath等)提供了将消息从一种格式转换为另外一种格式的能力。
(4)消息路由(MessageRouter)。
在实际的集成环境中,对于一个特定的输入请求消息,可能有多个应用程序参与进来作为该消息传递的目标。
ESB能够决定一个消息必须发送到哪些相关的应用程序中,处理这种逻辑的核心功能称为消息路由。
(5)消息增强(MessageEnhancement)。
在某些情况下,可能需要为请求数据添加额外的数据或转换已有的数据,在这种情况下,ESB应该提供对外部数据的访问能力,支持用户编写客户端代码对数据进行访问和处理。
(6)安全(Security)。
ESB必须支持对消息的授权和认证能力,如果输入数据可能被恶意解析,还要提供加密能力。
ESB的安全包括消息的机密性、完整性和可用性等,支持不同的安全策略与方法。
(7)监控和管理(MonitorandManagement)。
关注ESB的维护和管理能力。
监控与管理功能包含多个方面,例如对于消息层来说,其管理主要包括管理消息队列,监控消息大小和消息队列的吞吐率等。
对于Web服务,主要包括监控每个服务是否启动和运行,在每分钟有多少调用请求,对于一个Web服务,有多少服务实例在运行等。
(论文中只要给出以上7个核心功能中的5个即可)
2)ESB提供了一个基于标准的松散应用耦合模式,在层次化的技术结构中,ESB至少包含以下3层
(1)总线接入层:
通过这一层可以使用户各种应用接入ESB,使用ESB的各种服务。
在这一层提供对多种主流应用的接入协议支持,如HTTP、JCA/J2C、NET和IBM/CICS等。
同时考虑到一些客户自己定制的应用与ESB的连接,在总线接入层提供了适配器服务。
(2)核心层:
提供多种企业服务总线所需的必要服务支持,在这一层除了提供总线基本服务(如分发/订阅、队列、安全服务和仲裁服务等)外,还提供了QoS的支持(如高可用性、确保消息传输等)。
(3)微流程组合/拆分或定制路由层:
这一层是侧重在业务支持上。
通过通用和标准的对象和服务模型,可以在这一层上定义可重用和基于业界标准的业务流程。
3)目前流行的ESB产品包括商业产品和开源产品两类
(1)商业产品IBM的WebSphereESB、Oracle的OracleServiceBus(前身是BEA的AquaLogicServiceBus)和微软的BizTalkServer等。
(2)开源产品:
Mule、ApacheServiceMix、JBossESB、OpenESB和WSO2等。
(论文中只要给出以上产品中的4个即可)
4)结合项目实践经验,说明你参与管理和实施的工程项目所采用的ESB产品,然后围绕7个核心功能,并结合企业应用集成项目的实际特点,论述选择该ESB产品的原因,原因的描述要具有一定的广度和深度,要客观、适当。
3.具体说明你参与管理和开发的项目中,使用ESB技术进行应用集成时所遇到的问题。
这些问题包含但不限于以下内容。
(1)如何根据企业应用集成的需求选择合适的ESB产品?
(2)如何根据企业的具体组织结构确定集成系统的体系结构,并据此设计系统的功能分布与物理拓扑结构?
(3)相关子系统之间的数据格式转换问题。
(4)针对具体业务编写合适的处理逻辑并确定消息路由问题等。
论述解决以上问题所采取的策略、具体办法和步骤,以及它们对该工程项目后期的工作产生了哪些积极(或消极)的影响(效果和存在的问题)。
论文最后可以进一步讨论你在该工程项目中获得的与ESB应用相关的几点体会,以及在今后的工作过程中,如果碰到类似的开发项目你将如何应用这些经验或教训。
对需要进一步改进的地方,应有具体的着眼点,不能泛泛而谈。
4.论文写作过程中值得关注的一些要点如下(全书同)。
(1)整篇论文要结构合理、切中要害、陈述完整、言简意赅、语言流畅、字迹清楚,切忌对知识点的堆积、长篇大论、言之无物。
(2)选择自己参与过的工程项目进行分析论述,所述项目切题真实,介绍清楚。
(3)下午试卷Ⅱ是论述题目,问题中提到的中心内容在题目的说明中都有所涉及。
在答题时首先要冷静并认真阅读题目,找出和问题相关的知识点,确定考题的关键考点,这是答题的前提。
(4)摘要是全文概括,千万不要写成引言。
(5)围绕论文主题,对所参与的项目进行科学叙述与评价,要有具体的着眼点,不能泛泛而谈,尽可能从字里行间让阅卷者体会到你的实际工作能力、业务水平和项目实践经验。
(6)在考试过程中应注意技巧,让答题的思路最大限度地符合出题的思路,避免跑题,这样容易得到阅卷老师的共鸣。
(7)根据考生对所参与的项目中针对本论文主题的相关叙述与评价,可确定他(她)有无参与信息系统项目开发过程的实践经验。
试题二
阅读以下关于SOA架构在网上银行贷款业务的应用说明,根据要求回答问题。
[说明]
FZ软件公司承接了某银行网上银行业务软件系统的开发任务。
该银行所开通的网上银行业务中,网上贷款业务流程如下。
(1)客户在网上填写姓名、电子邮件地址、贷款类型、贷款金额、身份证号和通信地址等信息,提交贷款申请。
(2)在指定的时间内,客户会收到银行的电子邮件,通知贷款是否被批准。
(3)银行根据客户提交的信息,创建贷款申请任务,创建工作由运行在主机上的CICS(客户信息控制系统)完成,同时需要从第三方获得客户的信用审查信息。
(4)由信贷员对该项贷款申请业务进行审批,然后由风险检查系统评估该项贷款的风险程度,风险大的贷款申请将被拒绝。
(5)无论批准或者拒绝,结果都会通过邮件系统递交给客户。
对于拒绝的贷款申请,还要通知贷款申请任务进行有关操作。
(6)除了信贷员审批环节需要人机交互外,业务是自动进行的。
2.
[问题1]
上述网上贷款业务采用SOA架构来实现。
上述业务流程中涉及哪些功能单元?
本题中的案例采用SOA架构具有哪些优点?
请用300字以内的文字简要说明。
分值:
15
答案:
面向服务架构体系结构(Service-OrientedArchitecture,SOA)作为一种架构模型,它将应用程序的不同功能单元(称为服务)通过服务之间的接口(和契约)联系起来。
接口独立于实现服务的硬件平台、操作系统和编程语言。
接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言。
这使得构建的服务可以以一种统一的和通用的方式进行交互。
这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。
松耦合系统的好处有两点:
①灵活性;②当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。
而与此相对,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。
通过题干中关于网上银行贷款业务的说明不难找出相对独立的功能单元。
这些功能单元为SOA中的“服务”。
由题干中给出的关键信息“
(1)客户在网上填写姓名……等信息,提交贷款申请”可知,该网上贷款业务流程中需涉及“贷款申请”这一功能单元。
由题干中给出的关键信息“(3)银行根据客户提交的信息……同时需要从第三方获得客户的信用审查信息”可知,该网上贷款业务流程中涉及“信用审查”这一第三方功能单元。
由题干中给出的关键信息“(4)由信贷员对该项贷款申请业务进行审批,然后由风险检查系统评估该项贷款的风险程度”可知,该网上贷款业务流程中涉及“信贷员审批”和“风险检查(或风险评估)”这两个功能单元。
其中,功能单元“信贷员审批”也可从题干中给出的关键信息“(6)除了信贷员审批环节需要人机交互外,业务是自动进行的”获得启发。
由题干中给出的关键信息“(5)无论批准或者拒绝,结果都会通过邮件系统递交给客户”可知,该网上贷款业务流程中涉及“电子邮件传送”这一功能单元。
从技术角度而言,SOA带来了“松散耦合”的应用程序组件,在此类组件中,代码不一定绑定到某个特定的数据库(甚至不一定绑定到特定的基础设施)。
正是得益于这个松散耦合特性,才使得能够将服务组合为各种应用程序。
这样不仅大幅度提高了代码重用率,而且业务变更时业务系统更加灵活和便利,还可以在增加功能的同时减少工作量。
SOA还具有管理上的优点。
例如,现在管理员可直接管理开发人员所构建的服务,这远胜于以往管理单个应用的方式。
通过分析服务间的交互,SOA可以帮助企业了解何时及什么业务逻辑被切实执行了,这使管理员能够有针对性地优化业务流程。
采用SOA将本项目相关功能单元有机地集成在一起,可以快速、经济、方便地构建出网上银行贷款业务系统。
具体优点表现在:
①可以复用银行的各种应用资源;②可以增强银行各个业务的集成性和灵活性;③业务流程变更时便于快速构建应用系统。
3.
[问题2]
服务注册表(ServiceRegistry)模式是SOA的架构模式之一。
注册表支持驱动SOA治理的服务合同、策略和元数据的开发、发布和管理。
结合你的系统架构经验,请用400字以内的文字简要说明大多数商用服务注册产品支持哪些SOA治理功能。
分值:
15
答案:
虽然服务注册表(ServiceRegistry)常常具有运行时段的功能,但它主要是在SOA设计时段使用。
注册表支持驱动SOA治理的服务合同、策略和元数据的开发、发布和管理。
因此它提供一个主控制点,也称为策略执行点(PolicyEnforcementPoint,PEP)。
在这个点上,服务可以在SOA中注册和被发现。
注册表可以包括有关服务和相关软件组件的配置、遵从性和约束配置文件。
任何帮助注册、发现和检索服务合同、元数据和策略的信息库、数据库、目录或其他节点都可以被认为是一个注册表。
UDDI(通用描述、发现与集成)标准定义了SOA的一种主要注册环境。
大多数商用服务注册产品支持以下SOA治理功能。
(1)服务注册:
应用开发者(也称为服务提供者)向注册表公布他们的功能。
他们公布服务合同,包括服务身份、位置、方法、绑定、配置、方案和策略等描述性属性。
实现SOA治理最有效的方法之一,是限制哪类新服务可以向主注册表发布、由谁发布,以及谁批准和根据什么条件批准。
此外,许多注册表包含开发向注册表发布服务可能需要的说明性服务模板。
(2)服务位置:
服务应用开发者帮助他们查询注册服务,寻找符合自身要求的服务。
注册表让服务的消费者检索服务合同。
对谁可以访问注册表,以及什么服务属性通过注册表暴露的控制,是另一些有效的SOA治理手段,注册表产品一般都支持此类功能。
(3)服务绑定:
服务的消费者利用检索到的服务合同来开发代码,开发的代码将与注册的服务绑定、调用注册的服务,以及与它们实现互动。
开发者常常利用集成的开发环境自动将新开发的服务与不同的新协议、方案和程序间通信所需的其他接口绑在一起。
工具驱动对服务绑定的控制,有效地管理服务在企业服务总线(ESB)上的互动。
4.
[问题3]
上述网上贷款系统能够实际应用的基本前提之一是满足金融领域的安全性需求。
该系统必须要满足哪些安全方面的需求?
请用200字以内的文字简要说明。
分值:
15
答案:
在进行SOA的集成时,用户身份识别、数据完整性等安全问题是需要重点解决的问题。
该网上贷款系统必须满足以下安全方面的需求。
(1)利用用户身份验证技术对该网上贷款系统有关角色进行身份识别。
(2)利用公钥密钥机制等技术创建及验证类似手写签名的电子签名。
(3)采用授权机制审查系统中信贷员是否具有相应的审批权。
(4)利用数据完整性机制验证发送的数据与接收到的数据是否一致。
(5)采用机密性机制使与业务无关的人员不能读取事务中的数据。
(6)采用审查机制(例如,日志记录)把所有事务记录下来,以便事后验证。
(7)利用防否认机制,由第三方求证事务中发送及收到的是否是同一数据。
(8)利用威胁预防机制,防止间谍程序登录和攻击系统。
试题三
5.
以图形的方式观察和认识事物,是人类最便捷的认知方式之一。
实时控制系统的可视化技术,使得操控人员以更加易于理解的形式掌握被控对象和过程的状态,为操作与决策提供方便。
但是,可视化的设计涉及许多相关技术,程序设计复杂,有时甚至比设计实时控制系统本身的工作量还大。
请围绕“可视化技术在实时控制系统的应用”论题,依次对以下3个方面进行论述。
1.概要叙述你参与管理和开发的实时控制系统项目及你所担任的主要工作。
2.论述你在实时控制系统可视化的设计中所涉及的基本概念和采用的技术、方法,详细叙述实现过程中所遇到的问题及解决办法。
3.分析与评估可视化技术对改善系统操控性能的效果,简要展望可视化技术在未来实时控制系统的应用前景,以及你进一步应用可视化技术的有关设想。
分值:
18.75
答案:
1.简要介绍你参与管理和开发的大中型实时控制系统项目的基本情况,简要说明自己在该项目中的角色、所承担的主要任务及开展的主要工作。
论文叙述自己参与管理和开发的实时控制系统项目应有一定的规模,自己在该项目中担任的主要工作应有一定的分量。
2.讨论你在实时控制系统可视化的设计中所涉及的基本概念和采用的技术及方法。
分析各种可视化系统的共性,讨论独立于实时控制系统的可视化平台的概念模型和基本要素,分析在实时控制系统与可视化平台之间传送的消息的基本形式。
结合项目实践经验,针对在可视化平台上开发实时控制系统可视化部分的具体要求,详细分析对可视化系统开发工具的要求。
详细叙述实时控制系统可视化的形式和实际意义,要明确系统设计的目标,对于讨论可视化系统设计和实现时所遇到过的主要问题,要有具体的解决方案和对策(解决办法)。
3.说明你的项目中所使用的可视化技术,对改善系统操控性能进行客观的分析和适当的评价,进一步讨论你在实时控制系统的可视化设计方面的几点体会,以及在今后的工作过程中,如果碰到类似的开发项目你将如何应用这些经验或教训。
对需要进一步改进的地方,应有具体的着眼点,不能泛泛而谈。
论文最后简要给出实时控制系统可视化技术的发展趋势与前景。
在对发展前景和可能的新技术讨论时,最好能够讨论某一种具体技术的实际应用。
试题四
4
阅读以下关于基于场景驱动的软件架构设计的相关叙述,根据要求回答问题。
[说明]
对于大中型软件开发项目,通常采用迭代的方法来进行架构设计。
架构先被原型化、测试和评估分析,然后在一系列的迭代过程中被细化。
这种方法能够使需求细化、成熟化,并能够被更好地理解。
用例场景是通过描述流经用例的路径来确定的过程,这个流经过程要从用例开始到结束遍历其中所有基本流(基本事件)和备选流(分支事件)。
表1是对某IC卡加油机应用系统基本流的描述,表2是对该IC卡加油机应用系统备选流的描述。
表1基本流描述表
序号
用例名称
用例描述
A1
准备加油
客户将IC加油卡插入加油机
A2
验证加油卡
加油机从加油卡的磁条中读取账户代码,并检查它是否属于可以接收的加油卡
A3
验证黑名单
加油机验证卡账户是否存在于黑名单中,如果属于黑名单,则加油机吞卡
A4
输入购油量
客户输入需要购买的汽油数量
A5
加油
加油机完成加油操作,从加油卡中扣除相应金额
A6
返回加油卡
退还加油卡
表2备选流描述表
序号
用例名称
用例描述
B
加油卡无效
在基本流A2过程中,该卡不能够识别或是非本机可以使用的IC卡,加油机退卡,并退出基本流
C
卡账户属于黑名单
在基本流A3过程中,判断该卡账户属于黑名单(例如,已经挂失),加油机吞卡,并退出基本流
D
加油卡账面现金不足
系统判断加油卡内现金不足,重新加入基本流A4,或选择退卡
E
加油机油量不足
系统判断加油机内油量不足,重新加入基本流A4,或选择退卡
6.
[问题1]
结合你的系统架构经验,请用400字以内的文字,简述基于场景驱动的迭代式软件架构设计过程。
分值:
15
答案:
这是一道要求读者掌握基于场景驱动的迭代式软件架构设计的经验总结题。
本题的解答思路如下。
软件架构是软件系统的高层描述,给出了关于软件系统组织结构的一系列高级的、重要的抽象,包括:
①系统组成的结构性构件;②组成构件之间的接口;③构件相对系统其他部分的可视行为;④构件之间所采取的交互和协作关系。
采用迭代的方法来进行架构设计,除了减少与架构相关的风险之外,在项目管理方面的优点有团队合作和培训,加深对架构的理解,以及深入程序和工具等(此处提及的是演进的原形,逐渐发展成为系统,而不是一次性的试验性的原形)。
这种迭代方法还能够使需求被细化和成熟化,并能够被更好地理解。
软件系统大多数关键的功能以场景(或用例)的形式被捕获。
这里的“关键”是指系统最重要的功能(或系统存在的理由),或使用频率最高的功能,或其应用减轻了一些重要的技术风险。
基于场景驱动的迭代式设计过程如下。
(1)开始阶段。
基于风险和重要性为某次迭代选择一些场景。
场景可能被归纳为对若干用户需求的抽象;对场景进行“描述”,以识别主要的抽象(类、机制、过程和子系统);将所发现的架构元素分布到4个视图中;然后实施、测试和评估该架构。
这个过程中可能检测到一些缺点或潜在的增强要求。
(2)循环阶段。
重新评估风险,选择能减轻风险或提高结构覆盖的额外的少量场景,然后试着在原先的架构中描述这些场景,发现额外的架构元素,或找出适应这些场景所需的重要架构变更,更新4个主要视图;根据变更修订现有的场景;升级实现工具(架构原型)以支持新的、扩展的场景集合。
(3)测试。
如果有可能(例如,在已有的可重用的组件下快速实现系统),则在实际的目标环境和负载下进行测试。
(4)评审。
评审软件架构的5个视图,检测架构在简洁性、可重用性和通用性方面可能存在的潜在问题。
(5)更新设计准则和基本原理。
(6)捕获经验教训。
对于实际的系统,初始的架构原型需要不断进行演化。
一般的情况是在经过2次或3次迭代,当找到了主要的抽象时,子系统和过程都已经完成并且已经实现所有的接口,系统架构可认为趋向于稳定。
可能这些迭代过程的持续时间参差不齐,其原因在于:
所实施项目的规模,参与项目人员的数量,对本领域和方法的熟悉程度,以及该系统和开发组织的熟悉程度等。
因而较小的项目迭代过程可能持续2~3周,而大中型的项目可能为6~9个月。
7.
[问题2]
下图是对该IC卡加油机应用系统的基本流路径和备选流路径的描述,请用试题描述中的相应字母(见表1和表2),将图中
(1)~(6)空缺处的内容填写完整。
分值:
15
答案:
这是一道要求读者掌握场景法的基本流和备选流路径描述的应用分析题。
本题的解答思路如下。
(1)经过用例的每条不同路径都反映了基本流和备选流,都用箭头来表示。
基本流用粗直黑线来表示,是经过用例的最简单的路径。
上图中粗直黑线就是对该IC卡加油机应用系统基本流路径的描述。
(2)再根据表1中A1~A6各个基本流的描述和描述顺序,以及图中已给出的基本流A1、A2、A3、A6的路径位置可知,图中(3)空缺处填写的内容应为“A4(输入购油量)”,(4)空缺处填写的内容应为“A5(加油)”。
(3)备选流用不同的彩色曲线表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中;也可能起源于另一个备选流,或者终止用例而不再重新加入某个流。
(4)根据表2中备选流B的描述“在基本流A2过程中,该卡不能够识别或是非本机可以使用的IC卡,加油机退卡,并退出基本流”可知,备选流B的路径起源于基本流A2,终点是基本流A6(退还加油卡)。
因此图中
(1)空缺处填写的内容应为“B(加油卡无效)”。
(5)同理,根据表2中备选流C的关键描述“在基本流A3过