ibm mq api_使用IBM API Connect和IBM MQ将后端系统连接到API

IBM®API Connect与IBM MQ之间的集成对于可靠的消息传递至关重要。 到目前为止,这种集成还不适用于使用后端系统通过MQ进行通信的环境。 由于API Connect可以与IBM MQ集成的新自定义策略,您可以无缝创建面向公众的API以与您的后端系统一起使用。 此定制策略捕获了IBMDataPower®和MQ的现有兼容性。

本教程说明了如何使用我们开发的定制策略来将API Connect实例与MQ队列管理器集成在一起。 使用此策略,由API Connect管理的API可以针对MQ队列。 API层可以很容易地与使用IBM MQ公开的后端系统进行交互。 在此过程中,调用API时,API Connect会生成SOAP信封并将SOAP信封发布到MQ队列。

在完成本教程之前,您必须对API Connect基本的了解 您还必须具有一个IBM DataPower Gateway作为API运行时,以及一个IBM DataPower Gateway可访问的MQ队列管理器。

API Connect中的策略

通过使用API​​ Connect组装工具,您可以向API的运行时行为添加转换和逻辑。 您可以使用该程序集创建具有逻辑结构的复杂流,例如ifswitch语句。 您还可以创建数据处理机制,例如字段编辑,JSON到XML和输入到输出映射。 这些操作称为策略 您可以通过将图块拖动到装配体来连接和组织它们。

API Connect提供了一种方法来接收API请求,然后启动一个或多个HTTP服务。 但是,我们希望API请求启动MQ SOAP服务而不是HTTP服务。 以下步骤说明了此解决方案的工作方式:

  1. 使用者使用HTTPS调用API。
  2. SOAP消息是使用来自初始API请求的信息创建的。
  3. SOAP消息放在请求队列中。
  4. MQ服务从请求队列获取消息,并将响应放入应答队列。
  5. MQInvoke策略从队列获取响应。
  6. 如果未指定答复队列,它将返回MQMD标头。

下图说明了此解决方案中的步骤。 可以通过使用API​​ Connect中的“映射”策略或通过创建SOAP Envelope Generator用户定义的策略来构造SOAP消息。

ibm mq api_使用IBM API Connect和IBM MQ将后端系统连接到API

MQInvoke用户定义的策略

为了解决与API Connect和MQ集成时发现的挑战,您可以使用用户定义的策略。 在本教程中,我们使用并描述了MQInvoke策略,您可以从GitHub下载该策略。

通过在配置面板中使用以下参数定义MQInvoke策略:

  • 队列管理器 将此变量设置为IBM DataPower中的IBM MQ队列管理器对象或IBM MQ队列管理器组对象的名称值。
  • 队列。 将此变量设置为所选队列管理器中的请求队列的名称。
  • 回复队列。 将此变量设置为所选队列管理器中答复队列的名称。 如果消息流不打算同步,则将此值保留为null或" "
  • Backoutq。 如果需要,将此变量设置为所选队列管理器中的回退队列的名称。 如果将Replyqueue设置为null或" " ,则该策略不会将错误消息放入回退队列。 您必须在此处而不是在DataPower MQ对象中定义回退队列。
  • 超时。 输入时间(以毫秒为单位),之后该策略将声明队列管理器不可达,并返回到达408超时的响应代码。
    ibm mq api_使用IBM API Connect和IBM MQ将后端系统连接到API

启动用户定义的概要文件时,它将当前消息主体放入在DataPower(QM对象)中注册的队列管理器上的指定请求队列中。 如果答复队列为空,则此请求为单向请求。 否则,请求是同步的。 对于同步请求,答复队列名称上应有响应。 轮询应答队列,直到收到具有与请求匹配的CorrelId的消息为止。 响应消息的主体被发送回API使用者。 对于将消息放入MQ队列时的单向请求,将响应返回给API使用者。

创建DataPower扩展

要创建DataPower扩展,请登录到IBM DataPower。

建立网域

创建一个域,您将在其中开发DataPower扩展和用户定义的策略。 该域仅用于创建MQ对象。 您可以稍后将其删除。

  1. 在搜索字段中,输入domain
  2. 从结果中,单击“ 应用程序域”
  3. 在“应用程序域”窗格中,单击“ 新建”
  4. 对于名称,输入MQ
  5. 点击应用
    ibm mq api_使用IBM API Connect和IBM MQ将后端系统连接到API
  6. 保存配置。
  7. 单击右上角的当前域,然后选择MQ域

添加队列管理器对象

  1. 在搜索字段中,输入Queue
  2. 在搜索字段下的选项中,单击IBM MQ队列管理器
    ibm mq api_使用IBM API Connect和IBM MQ将后端系统连接到API
  3. 点击新建
  4. 输入以下属性。 在此示例中,我们使用显示的值。 您自己的值可能会有所不同。
    1. 对于名称,输入QM1
    2. 输入主机名,格式为xxx.xxx.xxx.xx:xxxx
    3. 对于队列管理器名称,输入QM1
    4. 对于用户名,输入dpuser
    5. 单击XML Manager的加号( + )。
    ibm mq api_使用IBM API Connect和IBM MQ将后端系统连接到API
  5. 在“配置用户代理”窗口中,为Name输入MQUserAgent
  6. 点击应用
    ibm mq api_使用IBM API Connect和IBM MQ将后端系统连接到API
  7. 保存配置。

添加DataPower扩展

DataPower扩展要求您在local:// ext /目录下创建一个控制文件以指定其行为。 在这种情况下,我们使用DataPower扩展作为一种机制来部署用户定义的策略所需的对象。 因此,扩展文件不需要必需的扩展标签。

要添加DataPower扩展:

  1. 打开一个文本编辑器。
  2. 添加以下行:
    <extensions>
    </extensions>
  3. extensions.xmlextensions.xml保存文件。
  4. 在“文件管理”中,对于本地文件夹,单击“ 操作”链接,然后单击“ 创建子目录”
    ibm mq api_使用IBM API Connect和IBM MQ将后端系统连接到API
  5. 输入ext并单击Confirm Create
  6. 单击操作 选择Upload Files ,然后找到您刚刚创建的extensions.xml文件。

下图显示了我们创建的扩展文件。

ibm mq api_使用IBM API Connect和IBM MQ将后端系统连接到API

导出配置

  1. 在搜索字段下的选项中,点击导出配置
  2. 选择“ 导出数据”以从当前域中选择配置 ,然后单击“ 下一步”
  3. 在“导出配置”窗口中,完成以下设置:
    1. 对于文件名,输入mqextension
    2. 在“可用对象”框中,选择“ IBM MQ队列管理器组” ,然后单击向右箭头( > )将选择内容移到“ 选定对象”框中。
  4. 点击下载
    ibm mq api_使用IBM API Connect和IBM MQ将后端系统连接到API

现在,您可以按照以下步骤中的说明,在Cloud Manager中添加作为DataPower服务扩展下载的压缩扩展文件。

将扩展添加到API Connect

  1. 登录到Cloud Manager。
  2. 单击服务
  3. 向下滚动到DataPower Services,然后在“网关”部分中,单击“ 配置”图标。
  4. 在配置窗口中,向下滚动到API Gateway Extension ,然后单击Browse
  5. 找到您下载的压缩扩展文件。
  6. 点击保存

添加扩展名时,您会看到一条刷新消息,显示了几分钟。 添加扩展名后,您会看到一条消息“ ACTIVE”。

将策略导入API Connect

  1. 要使用这些策略,请将压缩文件导入API Connect。 导入后,该策略将显示在程序集中,如下图底部所示,可以使用了。
    ibm mq api_使用IBM API Connect和IBM MQ将后端系统连接到API
  2. 根据需要将策略拖到程序集中多次。 磁贴的每个实例都拥有自己的独特配置。
  3. 要配置MQInvoke策略,请输入所运行的MQ实例的详细信息:
    1. 对于queuemanager,输入MQDAC01
    2. 对于队列,输入API1IN
    3. 要获取答复,请输入API1OUT
    4. 对于backoutq,输入API1OUT
  4. 测试API。
    ibm mq api_使用IBM API Connect和IBM MQ将后端系统连接到API

在DataPower和MQ之间启用SSL以确保安全

将DataPower连接到MQ系统时,请使用安全套接字层(SSL)。 出于安全原因,在导出DataPower配置时,将省略加密材料。 因此,您必须以稍微不同的方式处理SSL:

  1. 在API Connect Cloud Manager中创建传输层安全性(TLS)配置文件
  2. 根据需要放置信任库和演示者证书。
  3. 如上一节中所述,当您创建MQ对象时,请将SSL客户端配置文件设置为您创建的TLS配置文件。

随附的DataPower扩展包含对在API Connect Cloud Manager中配置的TLS配置文件的引用。 如果出于某种原因需要调整此TLS配置文件,则可以在Cloud Manager中的TLS配置文件下查看该配置文件

结论

本教程介绍了一种通用的解决方案,可以帮助您解决集成API Connect和MQ的挑战。 通过使用如上所述的用户定义策略,您可以调用API,将此SOAP信封放入请求队列中,启动MQ服务,然后解析SOAP响应的主体。

翻译自: https://www.ibm.com/developerworks/library/mw-1611-hutchinson-trs/index.html