问答题
阅读以下关于系统设计与开发工具集成的说明,根据要求回答下面问题。
[说明]
TeleDev是一个大型的电信软件开发公司,公司内部采用多种商业/开源的工具进行软件系统的设计与开发工作。为了提高系统开发效率,公司管理层决定开发一个分布式的系统设计与开发工具集成框架,将现有的系统设计与开发工具有效集成在一起。集成框架开发小组经过广泛调研,得到了如下核心需求:
(1)目前使用的系统设计与开发工具的运行平台和开发语言差异较大,集成框架应无缝集成各个工具的功能。
(2)目前使用的系统设计与开发工具所支持的通信协议和数据格式各不相同,集成框架应实现工具之间的灵活通信和数据格式转换。
(3)集成框架需要根据实际的开发流程灵活、动态地定义系统工具之间的协作关系。
(4)集成框架应能集成一些常用的第三方实用工具,如即时通信、邮件系统等。
集成框架开发小组经过分析与讨论,最终决定采用企业服务总线(ESB)作为集成框架的基础架构。
问答题
ESB是目前企业级应用集成常用的基础架构。请列举出ESB的4个主要功能,并从集成系统的部署方式、待集成系统之间的耦合程度、集成系统的可扩展性3个方面说明为何采用ESB作为集成框架的基础架构。
【正确答案】
【答案解析】ESB的主要功能包括:
①应用程序的位置透明性;
②传输协议转换;
③消息格式转换;
④消息路由;
⑤消息增强;
⑥安全支持;
⑦监控和管理
理由:
①从集成系统的部署方式来看,它能够实现灵活的部署结构,包括C/S结构、P2P结构等。
②从待集成系统之间的耦合程度来看,待集成系统只需要和总线进行联系,彼此之间不需要互相通信,从而大大降低了系统的耦合程度。
③从集成系统的可扩展性来看,在加入新的待集成系统时,只需要采用插件的方式实现传输协议和数据格式的适配即可,系统的可扩展性较强。
企业服务总线(ESB)是由中间件技术实现的支持面向服务架构(SOA)的基础软件平台,支持异构环境中的服务以基于消息和事件驱动模式的交互,并且具有适当的服务质量和可管理性。ESB技术的基本思想是:提供一种标准的软件底层架构,各种程序组件能够以服务单元的方式“插入”到该平台上运行,并且组件之间能够以标准的消息通信方式来进行交互。ESB的基本核心功能包括:①应用程序的位置透明性;②传输协议转换,即支持多种可以广泛使用的传输协议;③消息格式转换,即支持多种数据格式及其相互转换(即多种平台下多种集成方式的支持);④提供位置透明性的消息路由和寻址服务;⑤消息增强,即支持多种消息传递模型(如请求/响应、发布/订阅等);⑥安全支持;⑦监控和管理。
采用ESB作为集成框架的基础架构,从集成系统的部署方式来看,它能够实现灵活的部署结构,包括C/S结构、P2P结构等;从待集成系统之间的耦合程度来看,待集成系统只需要和总线进行联系,彼此之间不需要互相通信,从而大大降低了系统的耦合程度;从集成系统的可扩展性来看,在加入新的待集成系统时,只需要采用插件的方式实现传输协议和数据格式的适配即可,系统的可扩展性较强。
问答题
在ESB基础架构的基础上,请根据题干描述中的4个需求,说明每个需求应该采用何种具体的集成方式或架构风格最为合适。
【正确答案】
【答案解析】需求(1):由于需要共享系统的功能,且系统的运行平台与语言差异较大,应采用面向服务的方式进行功能集成,可将工具的功能包装为服务,实现跨语言与跨平台的访问。
需求(2):工具所支持的通信协议和数据格式各不相同,且需要实现工具之间的灵活通信协议和数据格式交换,因此应基于消息总线,以协议及数据适配器的方式实现灵活的通信协议和数据格式转换。
需求(3):集成框架需要根据实际的软件系统开发流程,灵活、动态地定义系统设计与开发工具之间的协作关系,因此应引入工作流定义语言及其引擎来动态描述工具之间的协作关系。
需求(4):应采用界面集成的方法对第三方工具进行集成,绕过工具内部的复杂处理逻辑
面向服务的企业应用集成是一种基于面向服务体系结构(SOA)的新型企业应用集成技术,强调将企业和组织内部的资源和业务功能暴露为服务,实现资源共享和系统之间的互操作性,并支持快速地将新的应用以服务的形式加入到已有的集成环境中,增强企业IT环境的灵活性。依题意,对于需求(1)“目前使用的系统设计与开发工具的运行平台和开发语言差异较大,集成框架应无缝集成各个工具的功能”而言,由于需要共享系统的功能,并且系统的运行平台与语言差异较大,因此应该采用面向服务的方式进行功能集成,可以将工具的功能包装为服务,实现跨语言与跨平台的访问。
消息总线是一种通信工具,可以在机器之间互相传输消息、文件等。消息总线扮演着一种消息路由的角色,拥有一套完备的路由机制来决定消息的传输方向。发送段只需要向消息总线发出消息而不用管消息被如何转发,为了避免消息丢失,部分消息总线提供了一定的持久化存储和灾备的机制。对于需求(2)“目前使用的系统设计与开发工具所支持的通信协议和数据格式各不相同,集成框架应实现工具之间的灵活通信和数据格式转换”而言,工具所支持的通信协议和数据格式各不相同,并需要实现工具之间的灵活通信协议和数据格式交换,因此应该基于消息总线,以协议及数据适配器的方式实现灵活的通信协议和数据格式转换。
在解释器架构风格中,一个解释器通常包括:完成解释工作的解释引擎、包含将被解释的代码的存储区、一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行的进度的数据结构。具有解释器风格的软件中含有一个虚拟机,可以仿真硬件的执行过程和一些关键应用。对于需求(3)“集成框架需要根据实际的开发流程灵活、动态地定义系统工具之间的协作关系”而言,集成框架需要根据实际的软件系统开发流程,灵活、动态地定义系统设计与开发工具之间的协作关系,因此应该采用解释器架构风格,引入工作流定义语言及其引擎来动态描述工具之间的协作关系。
界面集成是最简单的企业应用集成方式之一。只是使用软件用户界面来实现对多种软件的集成。在典型情况下,集成的结果是形成一个新的、统一的显示界面。新的界面看起来好像是单一应用程序,但实际上却可能调用几个遗留应用程序。界面集成能够使得用户对集成系统产生一个“整体”的感觉。对于需求(4)“集成框架应能集成一些常用的第三方实用工具,如即时通信、邮件系统等”而言,应该采用界面集成的方法对第三方工具进行集成,绕过工具内部的复杂处理逻辑,实现功能集成。
问答题
请指出在实现工具之间数据格式的灵活转换时,通常采用的设计模式是什么,并对实现过程进行简要描述。
【正确答案】
【答案解析】采用适配器设计模式,即应首先定义一个统一的数据转换V1类,然后针对不同的数据格式转换需求定义对应的实际转换类,实际转换类需要继承数据转换接口类,并实现接口转换类定义的接口Adapter(适配器)模式是一种结构型设计模式,其设计意图是:通过将一个类的接口转换成客户希望的另外一个接口,使原本由于接口不兼容而不能一起工作的那些类可以一起工作。依题意,在实现工具之间数据格式的灵活转换时,通常采用适配器设计模式。其实现过程是:首先定义一个统一的数据转换接口类,接着针对不同的数据格式转换需求定义对应的实际转换类,实际转换类需要继承数据转换接口类,并实现接口转换类定义的接口。