企业应用集成(Enterprise Application Integration,EAI)是每个企业都必须要面对的实际问题。企业服务总线(Enterprise Service Bus, ESB)是一种体系结构模式,支持通信各方问的服务交互的虚拟化和管理。它充当面向服务架构(Service-Oriented Architecture, SOA)中服务提供者和请求者之间的连接服务的中间层。与传统的EAI技术相比,ESB采用总线式的体系结构集成多个应用系统,基于开放标准实现其内部核心功能,并支持快速加入新的应用到已有的集成环境中。
请围绕“ESB模式在企业应用集成中的应用”论题,依次从以下3个方面进行论述。
(1)要叙述你参与实施的企业应用集成项目(包括业务背景、组织结构、现有应用系统的分布,以及采用的技术等),以及你所担任的主要工作。
(2)详细论述。ESB的核心功能和典型结构;列举目前流行的ESB产品;指出你参与的项目所选择的ESB产品,并从ESB核心功能的角度说明选择该产品的理由。
(3)阐述在使用ESB技术进行应用集成过程中所遇到的问题及解决办法,简要叙述你进一步应用ESB模式的有关设想。
参考答案:(A)简要介绍你参与规划、设计、实施和管理的企业应用集成项目的基本情况(包括业务背景、组织结构、现有应用系统的分布和采用的技术等),简要说明自己在该项目中的角色、所承担的主要任务及开展的主要工作。参与管理和实施的企业应用集成项目应有一定的规模,自己在该项目中担任的主要工作应有一定的分量。
(B)企业服务总线(Enterprise Service Bus, ESB)是由中间件技术实现的支持面向服务架构(SOA)的基础软件平台,支持异构环境中的服务以基于消息和事件驱动模式的交互,并且具有适当的服务质量和可管理性。ESB技术的基本思想是,提供一种标准的软件底层架构,各种程序组件能够以服务单元的方式“插入”到该平台上运行,并且组件之间能够以标准的消息通信方式来进行交互。换而言之,ESB是传统中间件技术与XML、Web服务等技术结合的产物。ESB是一个集成平台,将现有的IT设施和应用系统暴露为服务。由于ESB基于开放标准,企业的遗产系统使用的私有技术能够基于开放和现代的技术(例如Web服务和消息机制等)暴露为服务。
①其核心功能包括位置透明性、传输协议转换、消息转换、消息路由、消息增强、安全,以及监控和管理G项内容。
·位置透明性(Location Transparency)。位置透明性是指当一个服务消费者与一个服务提供者通过ESB进行通信时,服务消费者不需要知道服务提供者的实际位置,这就意味着服务消费者与服务提供者之间是解耦合的。
·传输协议转换(Transport Protocol Conversion)。当服务请求者与服务提供者采用不同的传输协议时,ESB能够将基于输入传输协议格式的数据转换为不同输出传输协议格式的数据。
·消息转换(Message Transfonnation)。在服务请求者和服务提供者进行交互时,ESB基于开发标准(XLST和XPath等)提供了将消息从一种格式转换为另外一种格式的能力。
·消息路由(Message Router)。在实际的集成环境中,对于一个特定的输入请求消息,可能有多个应用程序参与进来作为该消息传递的目标。ESB能够决定一个消息必须发送到哪些相关的应用程序中,处理这种逻辑的核心功能称为消息路由。
·消息增强(Message Enhancement)。在某些情况下,可能需要为请求数据添加额外的数据或转换已有的数据,在这种情况下,ESB应该提供对外部数据的访问能力,支持用户编写客户端代码对数据进行访问和处理。
·安全(Security)。ESB必须支持对消息的授权和认证能力,如果输入数据可能被恶意解析,还要提供加密能力。ESB的安全包括消息的机密性、完整性和可用性等,支持不同的安全策略与方法。
·监控和管理(Monitor and Management)。关注ESB的维护和管理能力。监控与管理功能包含多个方面,例如对于消息层来说,其管理主要包括管理消息队列、监控消息大小和消息队列的吞吐率等。对于Web服务,主要包括监控每个服务是否启动和运行、在每分钟有多少调用请求等。
[注意] 论文中只要给出以上G个核心功能中的E个即可。
②ESB提供了一个基于标准的松散应用耦合模式,在层次化的技术结构中,ESB至少包含以下C层。
·总线接入层:通过这一层可以使用户各种应用接入ESB,以及使用ESB的各种服务。在这一层提供对多种主流应用的接入协议支持,如HTTP、JCA/JBC、.NET和IBM/CICS等。同时考虑到一些客户自己定制的应用与ESB的连接,在总线接入层提供了适配器服务。
·核心层:提供多种企业服务总线所需的必要服务支持,在这一层除了提供总线基本服务(如分发/订阅、队列、安全服务和仲裁服务等)外,还提供了QoS的支持(如高可用性、确保消息传输等)。
·微流程组合/拆分或定制路由层:这一层是侧重在业务支持上。通过通用和标准的对象和服务模型,可以在这一层上定义可重用和基于业界标准的业务流程。
③目前流行的ESB产品包括商业产品和开源产品两类。
·商业产品IBM的WebSphere ESB、Oracle的Oracle Service Bus (前身是BEA的AquaLogic Service Bus)和微软的BizTalk Server等。
·开源产品:Mule、Apache ServiceMix、JBossESB、OpenESB和WSOB等。
[注意] 论文中只要给出以上产品中的D个即可。
④结合项目实践经验,说明你参与管理和实施的工程项目所采用的ESB产品,然后围绕G个核心功能,并结合企业应用集成项目的实际特点,论述选择该ESB产品的原因,原因的描述要具有一定的广度和深度,要客观、适当。
(C)具体说明你参与管理和开发的项目中,使用ESB技术进行应用集成时所遇到的问题。这些问题包含但不限于以下内容。
·如何根据企业应用集成的需求选择合适的。ESB产品
·如何根据企业的具体组织结构确定集成系统的体系结构,并据此设计系统的功能分布与物理拓扑结构
·相关子系统之间的数据格式转换问题。
·针对具体业务编写合适的处理逻辑并确定消息路由问题等。
论述解决以上问题所采取的策略、具体办法和步骤,以及它们对该工程项目后期的工作产生了哪些积极(或消极)的影响(效果和存在的问题)。论文最后可以进一步讨论你在该工程项目中获得的与ESB应用相关的几点体会,以及在今后的工作过程中,如果碰到类似的开发项目你将如何应用这些经验或教训。对需要进一步改进的地方,应有具体的着眼点,不能泛泛而谈。