数据转换和格式转换是业务集成的核心任务。对于数据转换,IBM® ">WebSphere® Message Broker(以下简称 Message Broker)提供了它自己的 Mapping 节点(对于物理格式转换,使用消息集的数据建模发挥着重要作用),以及不同的消息分析器。
创建消息模型之后,您可以使用它来将 Message Broker 接收的所有请求消息的格式都转换为后端系统所需的另一种物理格式。 反过来,您可以使用消息模型来分析来自后端系统的响应消息,以生成消息的逻辑树,并轻松将其转换回前端系统的格式。Message Broker 广泛使用和支持的主要物理格式是文本、二进制文件和 XML。 文本格式可以是固定长度的、标记/分隔的或仅分隔的格式,而且分隔的元素既可以是有序的,也可以是无序的。本文包含四个部分:
使用消息集减少代码量 部分使用一个真实示例向您展示消息集如何大幅减少编程工作和
缩短面市时间。 固定长度的文本消息 部分使用示例向您展示如何使用固定长度的文本消息。 标记/分隔的有序或无序文本消息 部分解释了该格式和 ISO 8583 标准消息结构。 ISO 8583 消息 部分向您展示如何创建 ISO 8583 消息模型,并使用它帮助进行消息分析(不管物理格式是什么)。
使用消息集减少代码量
有时您需要与一个具有复杂界面的后端系统相集成。在这种情况下,Message Broker 中的消息建模功能可大大加速集成过程,如本文中使用过的示例所示。示例架构如图 1 所示。银行系统要求请求和响应消息的某些函数使用复杂的固定长度文本格式,其他函数使用标记/分隔的无序复杂文本格式。
图 1. 示例架构
在这样的情况下,您不知道 Message Broker 中消息建模的实力,您需要编写复杂的自定义代码来执行物理格式转换和消息分析。 通过创建消息模型,然后使用 MRM 分析器,您可以灵活地生成或分析任何消息,不管消息有多复杂。此外,使用 MRM 分析器中的可靠代码可提高您的中间件解决方案的总体可靠性。下面的图 2 显示银行系统适配器通过 MQInput 节点从前端接收 XML MQ 消息时的消息流。要根据消息模型将这条消息转换为文本格式,只需编写清单 1 中所示的三行 ESQL 代码来选择消息模型。创建的任何逻辑树(清单中最后两个语句用于创建 MRM 树)都将转换为选定的物理格式。代码与 Message Broker 计算节点 Extract backend Msg 相关。
图 2. 银行系统适配器消息流