IBM® ESB Backbone (IEB) 是一个企业服务总线 (ESB) 解决方案,通过可靠的消息传递、消息转换和消息审计功能解决了许多日常的复杂性。本文将详细介绍 WebSphere DataPower 设备的一种特定实现和这个解决方案是如何演变的。任何需要忍受通过异构协议执行点对点通信的艰巨任务的架构师、应用程序所有者和分布式应用程序开发人员, 都会喜欢上这个考虑了众多故障点的直观解决方案。
IEB 是 IBM Blue Harmony 基础架构的一个不可或缺的部分。Blue Harmony 项目负责实施 IBM 的营销计划(go-to-market initiatives)。在它的核心是 WebSphere DataPower X150,Blue Harmony 开发人员提供了专供 Blue Harmony 项目使用的自定义代码。这些自定义代码可处理日志记录、消息转换、消息路由和安全性。
DataPower XI50 和自定义代码相结合,形成了 IBM ESB Backbone (IEB)。本文向应用程序所有者介绍上手使用 IEB 所需的条件和它带来的好处。本文还提供了一些案例分析,详细分析了我们的团队在应用程序实现过程中遇到的成功和失败。
IEB 对 Blue Harmony 的利用
Blue Harmony 是 IBM 向全球集成企业的战略转型中的一个重要元素,为未来的日常运营奠定了基础。它为 IBM 的营销计划提供支持,比如智慧地球、业务分析和云计算。Blue Harmony 允许它的销售团队和业务合作伙伴将硬件、软件和服务订单组合到一个集成的解决方案中,然后再将该解决方案提供给客户。
Blue Harmony 项目的技术挑战在于,使任何地方的用户都能访问任何地方的服务,而没有协议、有线消息格式、网络安全等考虑因素的开发开销。
请考虑以下情况:应用程序 “A” 需要信息来处理一个来自应用程序 “B” 的订单。在应用程序 “A” 基于 HTTP 时,应用程序 “B” 公开一个 SOAP 服务,而且它们存在于相同的安全区域,没有防火墙,一切正常(参见图 1)。
图 1. 一个基本的 Web 服务调用
不 幸的是,大多数企业包含各不相同的用户和提供者。在应用程序 B 仅使用 MQ 时会发生什么?在 SOA 和使用 ESB 之前,用户需要提供一个 MQ 客户端。在其他类似上面所示的真实场景被添加到等式中的时候,很容易看到为什么使用 WebSphere DataPower XI50 设备具有非凡的意义(参见图 2)。
图 2. 通过 ESB 访问的服务
通过将用户和提供者分离,卸载掉许多与调用应用程序没有直接关系的杂务处理,XI50 能迅速增加其价值。
IEB 的初始目标很简单,与大多数 SOA ESB 类似,如以下各节中所述:
功能需求
功能需求包括:
用户收到他或她所需的服务。 用户规定消息的格式。 用户使用他或她想要的协议,比如 HTTP、HTTPS 和 MQ。 提供者致力于业务逻辑,无需处理在接口和基础架构不断演化过程中累积的各种不同类型的用户。也就是说,ESB 必须在物理和协议上将端点分离,同时高效地管理连接,遵守所有基础架构和安全需求。 IEB 容易使用、更改和管理。 ESB 提供了常见的业务交互模式(请求和响应、单向、通知、发布/订阅、事件处理)和传输协议(
例如 HTTP、HTTPS、MQ 和 FTP)的解决方案。
业务需求
业务需求是:
减少开发时间并节省开发成本。 使用基于标准的服务接口,减少公开现
有的遗留接口的成本和时间。 减少向用户部署,组合服务和响应业务需求的时间。 改进可管理性和问题判定。 减少宕机时间并提高可用性。 减少安全风险。 通过重用通用的基础架构服务,减少成本。
解决方案
David Chen 博士和他的团队提供的解决方案是,使用 DataPower 的 XI50 Multi-Protocol Gateway (MPGW) 服务和一个自定义代码库来满足需求。他们开发的产品变成了所谓的 “IEB (IBM Enterprise Service Bus Backbone)”。IEB 代码库使用户能够访问提供者,无需掌握提供者协议知识或配置。用户向 IEB 发出所有请求,IEB 将请求路由到配置的服务提供者。IEB 还管理着所有非业务相关的功能。IEB 的价值在于它的设计和对重用现有对象的重视。
一个纯 DataPower 解决方案要求 DataPower 开发人员为每次用户/提供者通信都创建一个新服务(Blue Harmony 称之为接口)。每个接口可能都需要额外的服务,比如转换或数据充实。处理这些任务所需的对象数量乘以接口数量,就构成了一个对人力、软件和硬件资源都具有 重大需求的系统。
IEB 开发人员在开发代码时需要考虑两个主要目标:
产品提供 “
易用性” 和 “易管理性”。正是这种有远见的思维形成了如今的 IEB。 IEB 配置是 IEB 的推动力量,允许所有各方仅关注和划分对他们至关重要的任务。典型的 DataPower 开发人员承担着为每个接口创建一个服务的负担,但 IEB 开发人员仅通过指定该接口的详细信息来提供 XML 配置。
IEB 提供了 DataPower XI50 的所有功能,同时还使得所有熟悉 XML 的人都可以部署新接口或修改现有接口。执行这些任务不再需要经过认证的 DataPower 开发人员。这种抽象使得任何人都能够管理 IEB,添加、修改和删除 Blue Harmony 接口。无论某个接口可能使用何种接口模式,IEB 开发人员都拥有控制权力。