第1部分:方案和配置

IBM Integration Bus是一种企业服务总线(ESB),可为SOA和非SOA环境提供连接和通用数据转换。 WebSphere Service Registry and Repository(WSRR)是服务元数据的中心参考点,包括服务定义文档,例如WSDL,XSD和WS-Policy文档。

将WSRR与IBM Integration Bus集成在一起,可使消息流在运行时访问与在WSRR中注册的服务相关联的元数据,从而实现服务使用者与服务提供者之间的动态连接。 IBM Integration Bus还可以在运行时从WSRR动态检索资源以在消息流处理中使用。 通过此过程,您可以将有关要在消息流中使用哪些工件的决定推迟到运行时,而不是在部署时做出决定,从而避免了在工件发生更改时构建和重新部署消息流的需求。

例如,不需要在消息流中预定义目标端点,因为可以在运行时从WSRR动态检索它们。 因此,您可以通过更新WSRR中的服务元数据来部署消息流并动态管理其路由和转换。 有关“端点查找”和“注册表查找”节点的更多信息,请参见第2部分

业务场景

本系列文章中描述的示例消息流可用于解决许多业务场景。 以下各节介绍了这些方案:

服务地点

ESB提供了使服务使用者与服务提供商脱钩一段时间的能力。 但是,实际上,需要知道目标服务的位置的问题只是从服务使用者转移到了ESB。

  • 业务问题

    充当其他服务代理或在运行时调用其他服务的消息流需要知道这些服务的位置或端点。 服务的位置可以硬编码到每个消息流中,但这会使它们容易受到环境变化的影响。 例如,如果调用的任何服务的位置发生更改,则受影响的消息流都需要使用新位置进行更新并重新部署。 在开发过程中,当每个消息流在各种环境中移动时,可能还需要修改每个消息流所调用的服务的位置。

  • 可以在WSRR中注册被调用服务的位置,并在运行时由消息流动态检索。 如果服务的位置由于某些原因而发生更改,那么更新在WSRR中注册的端点是一项简单的任务,以便任何受影响的消息流都可以将请求路由到服务的新位置。

  • 好处

    无论是对消息流的影响还是在系统管理方面,此方法都可以减少对服务位置所做的更改的影响。 它还允许在不使服务使用者知道更改或无需更改体系结构以支持替代的情况下,用一个服务提供商替换另一个服务提供商。

该系列提供的几乎所有示例流都在运行时从WSRR动态检索端点。 第3部分“端点查找方案”中详细讨论了动态路由。

服务选择

服务选择方案是先前描述的服务位置方案的扩展,并且在目标服务的多种实现可用时出现。

  • 业务问题

    已经定义了股票报价服务的接口,但是已经部署了三个实现。 一种实现方式返回最新的股票报价,并且仅应由Gold客户使用。 另一个实现返回5分钟前的报价,并且仅应由Silver客户使用。 最终实现将返回20分钟前的报价,并且仅供青铜客户使用。 股票报价服务的消费者希望能够使用单个端点来调用它。

  • 可以在WSRR中注册所有这三个服务的端点,并且其他元数据可以与每个端点关联。 例如,在前面描述的场景中,您可以在WSRR中定义一个自定义本体,该本体允许您将每个端点分类为GoldSilverBronze 。 当在运行时通过消息流检索端点时,元数据也将返回给IBM Integration Bus。 然后,消息流可以使用此元数据来决定应将请求路由到哪个端点,这可能与原始请求中可用的某些信息或ESB中可用的上下文信息结合在一起。

  • 好处

    通过这种方法,您可以在运行时基于关于那些提供程序的元数据在多个服务提供程序之间进行选择。 路由决策可能会受到原始请求中可用信息的影响,有时也称为基于内容的路由。 可替代地,该决定可以完全基于关于目标端点的元数据。 例如,您环境中的监视组件可能会将性能指标推送到WSRR中,并且消息流可能决定将请求路由到具有最低平均响应时间的端点。

由于此方案是服务选择方案的扩展,因此在第3部分:端点查找方案中也对此进行了详细讨论。

备用服务提供商

备用服务提供者是先前描述的服务选择方案的扩展。

  • 业务问题

    多个端点可用于目标服务,但是尝试调用所选端点时会发生错误。 服务的使用者仅知道代理该​​服务的消息流的终结点。 他们希望ESB能够透明地处理问题端点周围的路由请求。

  • 可以在WSRR中注册目标服务的所有端点,并在单个查询中通过消息流进行检索。 如果尝试在所选端点上调用目标服务时发生错误,则消息流可以简单地选择该服务的其他端点之一并重试。 消息流可以继续此过程,直到请求成功或尝试了所有服务端点为止。

  • 好处

    通过允许ESB透明地围绕问题端点路由服务请求,此方法使您能够在ESB中建立一定程度的容错能力。 您可能决定允许消息流尝试服务的所有可用端点,或者,您可能决定限制在将错误返回给服务使用者之前尝试的端点数量。 显然,ESB中内置的所有容错功能都必须与环境中使用的其他高可用性机制一起使用。

由于此方案是服务选择方案的扩展,因此在第3部分:端点查找方案中也对此进行了详细讨论。

服务转型

ESB通常提供的另一种功能是在服务使用者和服务提供者之间转换消息格式的能力。 通常,不同服务的接口和操作不相同。 ESB可以将消息从源格式转换为目标服务可以接受的格式。

  • 业务问题

    已实现服务的新版本,该新版本与以前的版本不向后兼容。 您希望使较旧版本的服务脱机以释放资源,但是您不想破坏这些版本的使用者或强迫他们更新其实现。

  • 可以在WSRR中注册该服务的所有版本,并且可以将其他元数据与每个服务关联。 例如,在前面描述的场景中,您可以定义XSL转换,该转换可以将对较旧版本的服务的服务请求转换为最新版本所需的格式(以及对服务响应的反向转换)。 这些XSL转换可以加载到WSRR中并与相关服务关联。 然后,它们可以在运行时由消息流检索,并应用于流经ESB的消息。

  • 好处

    通过这种方法,您可以透明地将服务的早期版本的服务请求路由到该服务的更高版本。 这使您可以使服务的早期版本脱机,从而释放它们原本会消耗的资源。 它还允许您将XSL转换存储在WSRR中,并在运行时动态地检索它们,从而避免了在消息流发生更改时构建和重新部署消息流的需求。

第4部分 “服务转换”中详细讨论了服务转换方案。

服务网关

IBM Integration Bus中的SOAP节点可以在网关方式下运行。 当配置为在网关模式下工作时,这些节点未配置为使用特定的WSDL文件,并且能够处理通用SOAP消息。

  • 业务问题

    您想要在ESB级别上应用一些通用处理的许多服务。 您不需要构建和部署单独的流来代理每个后端服务来实现此目的。

  • 通过在网关模式下使用SOAP输入节点,将不会对该节点接收到的SOAP消息执行特定于服务的验证。 这使您能够实现一个消息流,该消息流可以处理几个不同的后端服务的服务请求。 然后,这样的消息流可以提供一些通用功能,该功能将应用于其处理的所有服务请求,例如授权,日志记录等。 要将服务请求路由到后端服务,消息流可以从WSRR中检索端点。

  • 好处

    这种方法使您能够在一个地方实现通用处理逻辑,从而简化了对多个服务的服务请求的路由,监视,日志记录,版本控制和保护过程,从而减少了总体开发和测试工作量。 这也简化了调用目标服务的过程,因为服务使用者只需要知道一个端点即可。

第6部分:服务网关中详细讨论了服务网关场景。

SLA检查

WSRR中的服务级别协议(SLA)是服务提供商与服务使用者之间的协议。 ESB可以在处理请求时在运行时强制执行它们,以确保服务使用者有权调用目标服务。

  • 业务问题

    您在SOA中部署了许多服务,并且所有服务都已在WSRR中注册。 但是,您尚未在WSRR中注册这些服务的使用者。 结果,您不知道在任何给定时间点哪些服务使用者可能正在调用每个服务。 您想要确保SOA中的所有服务使用者都已在WSRR中注册,并且仅允许被授权调用目标服务的使用者进行注册。

  • WSRR允许您在SOA中注册服务使用者以及服务提供商。 它还使服务提供商和服务使用者之间存在的协议或合同可以使用服务级别协议(SLA)表示。 消息流可以在运行时动态地从WSRR检索此信息,并使用它来确定服务使用者是否被授权调用目标服务。 如果服务使用者有权调用目标服务,则它可以将请求转发到约定的端点。 如果服务使用者没有被授权调用目标服务,则可以返回适当的错误。

  • 好处

    这种方法使您可以控制哪些服务使用者正在调用实际的后端服务,从而使您能够在SOA中强制执行运行时治理。 另一个好处是,在服务使用者和提供者在WSRR中注册后,您可以在Service Registry Dashboard用户界面中可视化这些关系,并使用它来评估计划对服务进行的任何更改的影响。

本系列的两篇文章讨论了SLA检查方案。 第5部分:在运行时执行SLA检查,向您展示如何使用Registry Lookup节点来实现此功能,而第8部分:使用HTTP请求节点进行SLA检查,向您展示如何使用HTTP Request节点来调用WSRR REST API来实现它。

政策执行

WSRR除了使您能够注册服务提供商和服务使用者之外,还使您能够加载策略并将其附加到服务。 以这种方式使用WSRR成为SOA中服务和策略的中心参考点。

  • 业务问题

    您已在旧系统上启用了许多现有应用程序的服务,以使其在新环境中可用。 但是,仍然可以通过其他渠道(例如本机接口和通过WebSphere MQ的消息传递应用程序)访问这些应用程序。 为了确保这些应用程序的现有使用者不会受到通过Web Service界面发出的请求的不利影响,您希望能够指定可以通过此界面处理的通信量的限制。

  • IBM Integration Bus允许您通过将WLM策略附加到消息流来控制消息流中的处理速率。 WLM策略使您可以增加,减少或仅监视消息流处理消息的速率。 单个WLM策略可以附加到多个消息流。 WLM策略还可以在运行时更新,并且不需要重新启动任何消息流即可使更改生效。

    IBM Integration Bus WLM策略是使用WS-Policy定义的,允许将它们与您在SOA中使用的其他类型的WS-Policy一起加载和集中管理在WSRR中。 通过在WSRR中注册流并将WLM策略附加到它们,您可以在运行时动态控制通过IBM Integration Bus中的流所允许的流量。

  • 好处

    这种方法使您可以控制通过消息流的通信量,同时仍使您能够集中管理WSRR中的服务和策略,从而使您可以单视图SOA中的服务以及适用于它们的策略。

第9部分“ IBM Integration Bus WLM策略集成”中详细讨论了策略实施方案。

基本的IBM Integration Bus配置

IBM Integration Bus中的消息流可能取决于外部服务,例如WSRR。 与这些外部服务相关的属性是使用IBM Integration Bus中的可配置服务定义的。 您可以创建可配置服务 ,而不是在消息流中的节点上定义属性,以便消息流节点可以引用它们以在运行时查找属性。 控制IBM Integration Bus和WSRR之间的交互的大多数属性都封装在DefaultWSRR配置服务对象中。 您可以使用mqsireportproperties命令显示DefaultWSRR配置服务对象的当前属性:

mqsireportproperties命令
mqsireportproperties <BROKER_NAME>
                     -c ServiceRegistries
                     -o DefaultWSRR
                     -r

哪里:

  • <BROKER_NAME>是代理的名称(集成节点)。

该命令的输出示例如下所示:

mqsireportproperties输出
ServiceRegistries
  DefaultWSRR
    connectionFactoryName='jms/SRConnectionFactory'
    connectionTimeout='180'
    enableCacheNotification='false'
    endpointAddress='http://my.wsrr.host:9080/WSRRCoreSDO/services/WSRRCoreSDOPort'
    initialContextFactory='com.ibm.websphere.naming.WsnInitialContextFactory'
    locationJNDIBinding='iiop://fill.in.your.host.here:2809/'
    needCache='false'
    predefinedCacheQueries=''
    refreshQueriesAfterNotification='true'
    subscriptionTopic='jms/SuccessTopic'
    timeout='100000000'

修改DefaultWSRR可配置服务

IBM Integration Bus中的“端点查找”和“注册表查找”节点使用WSRR Web服务API与WSRR通信。 为此,通过在DefaultWSRR配置服务对象上设置endpointAddress属性,使用WSRR Web服务API的端点地址配置IBM Integration Bus。 但是,WSRR为Web服务API公开了多个端点,以保持与该产品先前版本的向后兼容性。 公开的每个特定于版本的端点都有唯一的URL后缀。 有关这些URL的更多信息,请参阅IBM Knowledge Center中WSRR V8文档中的Web服务接口URL

endpointAddress属性指定的值必须是IBM Integration Bus支持的兼容性URL之一。 以下是IBM Integration Bus V9支持的兼容性URL:

IIB支持的WSRR兼容性URL
WSRR版本 网址后缀
6.1 / WSRR6_1 / services / WSRRCoreSDOPort
6.2 / WSRR6_2 / services / WSRRCoreSDOPort
6.3 / WSRR6_3 / services / WSRRCoreSDOPort

要在DefaultWSRR配置服务对象上设置endpointAddress属性的值,需要使用mqsichangeproperties命令:

配置端点地址
mqsichangeproperties <BROKER_NAME>
                     -c ServiceRegistries
                     -o DefaultWSRR
                     -n endpointAddress
                     -v <WSRR_ENDPOINT_URL>

哪里:

  • <BROKER_NAME>是代理的名称(集成节点)。
  • <WSRR_ENDPOINT_URL>是WSRR Web服务API的端点的标准URL,例如https:// localhost:9443 / WSRR6_3 / services / WSRRCoreSDOPort

为了优化IBM Integration Bus和WSRR在运行时的交互,“端点查找”和“注册表查找”节点将它们发出的查询结果存储在高速缓存中。 出于性能原因,请在生产环境中的IBM Integration Bus中使用WSRR高速缓存。 但是,在开发环境中,请禁用WSRR缓存。 这使您能够立即测试WSRR中的元数据的任何更改对消息流的影响,而无需等待WSRR缓存被更新。 第7部分,在IBM Integration Bus中配置WSRR高速缓存中详细描述了WSRR高速缓存 。 要禁用WSRR高速缓存,您需要使用mqsichangeproperties命令:

禁用WSRR缓存
mqsichangeproperties <BROKER_NAME>
                     -c ServiceRegistries
                     -o DefaultWSRR
                     -n needCache
                     -v false

哪里:

  • <BROKER_NAME>是代理的名称(集成节点)。

配置IBM Integration Bus以访问安全的WSRR实例

在典型的生产环境中,在托管WSRR的WebSphere Application Server单元中启用了应用程序安全性。 对于尝试访问安全WSRR实例的客户端,有两个含义:

  • 在这种环境下尝试访问WSRR的用户必须经过身份验证。 在对用户进行身份验证之后,WSRR通过评估适用的任何访问控制权限来确定允许用户访问哪些资源。 无论用户是尝试使用基于浏览器的用户界面(例如Service Registry Dashboard )还是编程界面之一(例如WSRR Web服务API)来访问WSRR,此语句都是正确的。
  • 客户端与WSRR实例之间的通信必须通过加密通道(例如HTTPS

指定WSRR用户ID和密码

在IBM Integration Bus中运行的任何尝试访问安全WSRR实例的消息流都必须提供用户标识和密码。 如果消息流正在使用“端点查找”或“注册表查找”节点,那么将使用mqsisetdbparms命令在IBM Integration Bus中配置传递到WSRR的凭证。 如果消息流使用HTTP Request节点来调用WSRR REST API,则可以使用流中的计算节点以编程方式指定用户ID和密码。 第8部分:使用HTTP请求节点的SLA检查中详细描述了这种方法。

指定WSRR用户ID和密码
mqsisetdbparms <BROKER_NAME>
               -n DefaultWSRR::WSRR
               -u <USER_ID>
               -p <PASSWORD>

哪里:

  • <BROKER_NAME>是代理的名称(集成节点)。
  • <USER_ID>是有权访问WSRR中所需工件的用户的ID。
  • <PASSWORD>是该用户的密码。

提取WSRR签名者证书

当IBM Integration Bus尝试与安全WSRR实例进行通信时,将进行SSL握手以建立安全连接。 为了使SSL握手成功,IBM Integration Bus至少必须信任目标WSRR实例。 这是通过提取目标WSRR实例的签署者证书并将其添加到IBM Integration Bus使用的信任库中来实现的。 接下来的步骤描述了如何使用Firefox或Internet Explorer为目标WSRR实例提取签署者证书:

使用Firefox:

  1. 输入您先前配置的WSRR Web服务API的端点地址。 例如: https:// localhost:9443 / WSRR6_3 / services / WSRRCoreSDOPort
  2. 输入您先前配置的用户ID和密码。 您应该看到这样的页面:
    WSRR Web服务API问候
    WSRR Web服务API您好
  3. 右键单击页面,然后选择查看页面信息
  4. 安全选项卡上,单击查看证书
  5. 切换到“ 详细信息”选项卡,然后单击“ 导出”
  6. 为证书指定一个合适的名称,然后选择类型(例如DER)。 点击保存

使用Internet Explorer:

  1. 确保已关闭保护模式 :转到工具=> Internet选项=>安全,然后取消选中启用保护模式
  2. 输入您先前配置的WSRR Web服务API的端点地址,例如https:// localhost:9443 / WSRR6_3 / services / WSRRCoreSDOPort
  3. 输入您先前配置的用户ID和密码。 您应该看到一个与之前显示的页面相似的页面。
  4. 右键单击页面,选择“ 属性” ,然后单击“ 证书”
  5. 转到“ 详细信息”选项卡,然后单击“ 复制到文件” 。 请遵循“ 证书导出向导”给出的指示。

创建IBM Integration Bus信任库

IBM Integration Bus不提供或创建任何现成的密钥库。 您需要在保护IBM Integration Bus及其与环境中其他服务器的通信的过程中手动创建它们。 有关使用gsk7cmd命令行工具创建密钥库的更多信息,请参阅IBM Knowledge Center中的IBM Integration Bus V9文档中的“ 设置公共密钥基础结构” 。 以下步骤显示了如何使用IBM Integration Bus随附的IBM Key Management图形工具创建密钥库。 如果您已经在IBM Integration Bus环境中创建了密钥库,则可以跳过这些步骤。

  1. 打开命令窗口。
  2. 使用strmqikm命令或通过导航到<IIB_INSTALL>/jre17/bin目录并直接运行ikeyman命令来启动IBM Key Management工具。
  3. 将显示“ IBM Key Management窗口。 单击密钥数据库文件=>新建
  4. 将显示“ 新建”对话框。 指定JKSKey database type ,并为File Name and Location指定合适的值。 该对话框应类似于以下内容:
    创建一个新的密钥数据库文件
    创建一个新的密钥数据库文件
  5. 单击确定
  6. 将显示“ 密码提示”对话框。 指定将用于保护对密钥数据库文件的访问的密码并进行确认。
  7. 单击确定

导入WSRR签名者证书

后续步骤描述了如何使用IBM Integration Bus随附的IBM Key Management工具将WSRR签名者证书导入到IBM Integration Bus信任库中。

  1. 打开命令窗口。
  2. 使用strmqikm命令或通过导航到<IIB_INSTALL>/jre17/bin目录并直接运行ikeyman命令来启动IBM Key Management工具。
  3. 将显示“ IBM Key Management窗口。 单击密钥数据库文件=>打开
  4. 将显示“ 打开”对话框。 指定JKSKey database type ,然后单击“ 浏览”
  5. 导航到您的IBM Integration Bus信任库,然后选择它,然后单击Open
  6. 单击确定
  7. 将显示“ 密码提示”对话框。 输入您的IBM Integration Bus信任库的密码。
  8. 单击确定
  9. 在窗口的“ 密钥数据库内容”部分中,从下拉列表中选择“ Signer Certificates ”。
  10. 点击添加...。
  11. 将显示“ 打开”对话框。 单击浏览...。
  12. 导航到并选择包含您先前提取的WSRR签署者证书的文件。 单击确定
  13. 将显示“ 输入标签”对话框。 输入将用于在信任库中标识WSRR签名者证书的标签。
  14. 单击确定
  15. WSRR签名者证书将使用您指定的标签添加到信任中的签名者证书列表中。 “ IBM密钥管理”窗口应类似于以下内容:
    IBM Integration Bus信任库
    IBM Integration Bus信任库
  16. 关闭IBM Key Management工具。

配置IBM Integration Bus信任库

现在您已经拥有一个包含WSRR服务器的签署者证书的密钥库,您需要配置IBM Integration Bus以使用该密钥库。 使用mqsichangeproperties命令在BrokerRegistry对象上配置IBM Integration Bus使用的密钥库的位置:

指定信任库的位置
mqsichangeproperties <BROKER_NAME>
                     -o BrokerRegistry
                     -n brokerTruststoreFile
                     -v <TRUST_STORE_FILE>

哪里:

  • <BROKER_NAME>是代理的名称(集成节点)。
  • <TRUST_STORE_FILE>是信任库文件的完整路径。

为了使IBM Integration Bus打开密钥库文件并访问其中包含的证书,必须为它提供密码。 这是配置mqsisetdbparms

指定密钥信任库密码
mqsisetdbparms <BROKER_NAME>
               -n brokerTruststore::password
               -u dummy
               -p <PASSWORD>

哪里:

  • <BROKER_NAME>是代理的名称(集成节点)。
  • <PASSWORD>是已在IBM Integration Bus中配置的信任库的密码。

现在,您已经完成了IBM Integration Bus和WSRR之间连接的配置。

导入和构建样品流

WSRRIntegrationDemos.zip归档文件中提供了本系列文章中附带的示例流程,该文件可在“可下载资源”部分中找到。 这些流程包括Math Service的两个版本。 该服务执行基本的算术运算并将结果返回给客户端。 其余流程使用Math Service ,说明了IBM Integration Bus和WSRR之间可能进行的集成的各个方面。 要将这些流部署到IBM Integration Bus,您首先需要将它们导入IBM Integration Toolkit工作空间并将它们构建到BAR文件中。 以下各节描述了如何执行这些任务。

在IBM Integration Toolkit中导入样本流

第一步是将归档文件中包含的样本流导入到IBM Integration Toolkit工作空间中。 为此,您需要执行以下步骤:

  1. 打开IBM Integration Toolkit
  2. 选择文件=>导入...
  3. 将显示导入对话框。 展开General文件夹,然后选择Existing Projects into Workspace ,然后单击Next>
  4. 在下一个面板上,选择“ 选择存档文件”单选按钮,然后单击“ 浏览...”。
  5. 导航到包含本文随附的WSRRIntegrationDemos.zip归档文件的目录。
  6. 双击WSRRIntegrationDemos.zip存档。
  7. 在“ 导入”对话框中,确保已选择所有列出的项目( BARFilesWSRRIntegrationDemosWSRRIntegrationDemosJava )。 导入对话框应类似于以下内容:
    导入对话框
    导入对话框
  8. 点击完成

修改Java项目的构建路径

导入到您的工作区中的WSRRIntegrationDemosJava项目可能会出现许多编译错误。 这是由于以下事实:已添加到该项目的Java构建路径中的com.ibm.mq.jarConfigManagerProxy.jar文件可能在您环境中的其他位置。 如果您的WSRRIntegrationDemosJava项目存在编译错误,则需要修改Java Build Path才能对其进行编译。 为此,您需要执行以下步骤:

  1. IBM Integration Toolkit中 ,打开Java透视图。
  2. 右键单击WSRRIntegrationDemosJava项目。
  3. 在显示的上下文菜单中,选择Build Path => Configure Build Path...。
  4. 将显示WSRRIntegrationDemosJavaProperties对话框,并在左侧面板中选择Java Build Path 。 在右侧面板中,选择“ 库”选项卡。
  5. 从列表中选择com.ibm.mq.jar文件,然后单击Edit...。
  6. 将显示“ 编辑JAR”对话框。 导航到<MQ_INSTALL_DIR>/java/lib目录。 选择com.ibm.mq.jar ,然后单击确定
  7. 从列表中选择ConfigManagerProxy.jar ,然后单击“ 编辑”
  8. 将显示“ 编辑JAR”对话框。 导航到<IIB_INSTALL_DIR>/classes目录。 选择ConfigManagerProxy.jar ,然后单击“ 确定”
  9. 在“ WSRRIntegrationDemosJava属性”对话框中,单击“ 确定”

在IBM Integration Toolkit中构建样本流

现在,您需要在IBM Integration Toolkit中构建样本流。 为此,您需要执行以下步骤:

  1. 打开“ 集成开发”透视图。
  2. 应用程序开发视图中,展开酒吧和双击WSRRIntegrationDemos.bar:
    打开BAR文件
    打开BAR文件
  3. 该文件将在Broker Archive Editor中打开。 选择编辑器底部的“ 准备”选项卡。
  4. 点击生成并保存...
    构建BAR文件
    构建BAR文件
  5. IBM Integration Toolkit构建BAR文件时,将显示一个进度对话框。 该过程完成后,您会看到消息操作成功完成 。 单击确定

将样本流部署到IBM Integration Bus

现在,您需要将BAR文件部署到IBM Integration Bus。 幸运的是,此过程很简单。

  1. 确保目标IBM Integration Bus实例正在运行。
  2. 打开“ 集成开发”透视图。
  3. 在“ 应用程序开发”视图中,展开BAR,然后右键单击WSRRIntegrationDemos.bar
  4. 在显示的上下文菜单中,单击“ 部署...”。
  5. 将显示“ 部署”对话框。 选择应将BAR文件部署到的Integration Server ,如以下示例所示:
    部署BAR文件
    部署BAR文件
  6. 点击完成
  7. 部署BAR文件时,将显示一个进度对话框。 该过程完成后,进度对话框将自动关闭。 如果不是,请单击“ 关闭”

将测试数据导入WSRR

在测试任何样本流之前,您需要将一组测试数据导入到WSRR实例中。 此测试数据包含数学服务和使用该服务的应用程序(称为计算器应用程序)的表示 。 消费关系包含在服务级别协议中 ,该协议也包含在测试数据中。 在测试数据中显示了这种关系的高级视图。

测试数据
测试数据

To import the test data into WSRR, perform the following steps:

  1. Open a command window.
  2. Navigate to the <WAS_INSTALL_ROOT>/WSRR/admin/scripts_cell directory.
  3. If your WSRR instance is running on a WebSphere Application Server cluster execute the following command:
    <WAS_INSTALL_ROOT>/bin/wsadmin.sh -f importMetadata.jacl 
        -user <USER_ID>
        -password <PASSWORD>
        -cluster <CLUSTER_NAME>
        -filepath <FILE_PATH>
        -filename MathServiceExport.zip

    If your WSRR instance is not running on a WebSphere Application Server cluster execute the following command:

    <WAS_INSTALL_ROOT>/bin/wsadmin.sh -f importMetadata.jacl 
        -user <USER_ID>
        -password <PASSWORD>
        -cell <CELL_NAME>
        -node <NODE_NAME>
        -server <SERVER_NAME>
        -filepath <FILE_PATH>
        -filename MathServiceExport.zip

    哪里:

    • <USER_ID> is the id of a WSRR administrator.
    • <PASSWORD> is the password for this user.
    • <CLUSTER_NAME> is the name of the WAS cluster.
    • <CELL_NAME> is the name of the WAS cell.
    • <NODE_NAME> is the name of the WAS node.
    • <SERVER_NAME> is the name of the WAS server.
    • <FILE_PATH> is the path to the MathServiceExport.zip file. Forward slashes should be used as path separators regardless of what platform you are executing the command on.

    An example of using the command is shown below:

    # /opt/IBM/WebSphere/AppServer/profiles/WSRRSrv01/bin/wsadmin.sh
        -f importMetadata.jacl
        -user wasadmin
        -password passw0rd
        -cell halberdNode01Cell
        -node halberdNode01
        -server server1
        -filepath /root 
        -filename MathServiceExport.zip
  4. The test data will be imported into the target WSRR instance. You should see the following messages at the end of the console output in your command window:
    The entities with the following URIs were imported:
    [7c94a07c-1917-47ce.bc0a.95e874950a25, 72c3c072-56f7-4735.ba18.3afa1b3a1858]
    > ServiceRegistryRepository#importMetaData imported URIs:
    >> 7c94a07c-1917-47ce.bc0a.95e874950a25
    >> 72c3c072-56f7-4735.ba18.3afa1b3a1858
    > ServiceRegistryRepository#importMetaData completed, successfully.

Modifying the endpoint in the test ata

The test data supplied with the articles in this series assumes that your IBM Integration Bus instance is configured to listen for HTTP requests on the default port ( 7800 ). If this is not the case, you will need to modify the endpoint WSDL document to specify the correct port and then upload the modified document to WSRR, replacing the content of the existing document. You can use the mqsireportproperties command to check the port that is currently configured:

Checking the HTTPConnector port
mqsireportproperties <BROKER_NAME>
                     -e <EXECUTION_GROUP_NAME> 
                     -o HTTPConnector
                     -n port

哪里:

  • <BROKER_NAME> is the name of the broker (Integration Node).
  • <EXECUTION_GROUP_NAME> is the name of the broker (Integration Node).

If the port number shown when executing this command is not 7800 , you will need to complete the following steps to modify the endpoint WSDL document and load it into WSRR:

  1. Open IBM Integration Toolkit .
  2. Open the Integration Development perspective.
  3. In the Application Development view, expand WSRRIntegrationDemos => WSDL Definitions -> http://math.pot.ibm.com and double-click MathServerService_EP1.wsdl :
    Opening the WSDL file
    Opening the WSDL file
  4. The file will be opened in the WSDL Editor . Specify the correct port number in the URL for the location attribute.
  5. Save your changes to the file.
  6. In a Web browser, log on the the Service Registry Dashboard for your WSRR instance.
  7. Change to the Development view and then select the Overview page.
  8. Select MathService (1.0) in the Collection widget:
    Selecting the MathService
    Selecting the MathService
  9. You will taken to the Browse page, which will display the details of the MathService (1.0) service version in the Detail widget. This is a representation of an implementation of the service in WSRR, specifically version 1.0. In the Detail widget, under Artifacts select MathServerService_EP1.wsdl ‪(1.0) .
  10. The Detail widget will be updated to display the details of the MathServerService_EP1.wsdl ‪(1.0) WSDL document. Select Action => Replace Document :
    Replacing the document
    Replacing the document
  11. The Replace Document dialog will be displayed. Click Browse... .
  12. Navigate to, and select, the modified MathServerService_EP1.wsdl document on the file system. Click Replace Document .
  13. A Warning dialog will be displayed. 单击
  14. The Replace Document dialog will be updated to indicate that the document was successfully replaced. 单击关闭

Running the Calculator application

A client application is provided in the calculator.jar archive, which you can download at the bottom of the article section. It is a simple SWING-based Java application that invokes the Math Service. To run the Calculator application and verify that your IBM Integration Bus environment is correctly configured:

  1. Open a command window.
  2. Execute the following command:
    java -jar <CALCULATOR_JAR_PATH>

    哪里:
    • <CALCULATOR_JAR_PATH> is the full path calculator.jar file.
    This command assumes that java is on the path in your environment. If it is not, then specify the full path to your java executable.
  3. After the Calculator application opens, specify suitable hostname and port number values for the server that is running IBM Integration Bus.
  4. Modify the path for the service, setting its value to /MathServer1/services/MathServer, which is the path to the actual Math Service, and will verify that the flow that implements the service has been successfully built and deployed to IBM Integration Bus.
  5. Specify some values and a suitable operator (+, -, /, *) in the drop-down and then click = . The Calculator application will invoke the Math Service and display the result of the specified operation. 它看起来应该像这样:
    The Calculator Application
    The Calculator Application
  6. Modify the path for the service, setting its value to /MathServer/services/MathServer/eplookup1, the path to the basic endpoint lookup message flow. It will verify that IBM Integration Bus can communicate with the target WSRR instance.
  7. Click = . The service request from the Calculator application will be routed to the Math Service by the basic endpoint lookup message flow. You should see the same result as invoking the Math Service directly.

结论

This article has described a number of business problems that can be solved by integrating IBM Integration Bus and WSRR. It has provided several sample message flows that solve these business problems and has walked you through the process of getting them up and running in your IBM Integration Bus and WSRR environment. The remaining articles in this series describe each of these message flows in detail, explaining how each message flow has been implemented to achieve the desired goals.

致谢

The author would like to thank the following people for all of their help with the development of the sample messages flows in this series:

  • John Hosie
  • Ben Thompson
  • Matt Golby-Kirk
  • Trevor Dolby
  • Andreas Martens
  • Graham Haxby
  • Andrew Coleman
  • John Reeve

The author would also like to thank the following people for their help with reviewing this article:

  • David Seager
  • Arnauld Desprets
  • Anna Maciejkowicz

翻译自: https://www.ibm.com/developerworks/websphere/library/techarticles/1404_smithson1/1404_smithson1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值