IBM® WebSphere® Adapter 家族包含各种基于 JCA 1.5 标准的技术和应用程序适配器。这些适配器使集成开发人员能够将各种运行时(比如 WebSphere Application Server、WebSphere ESB 和 IBM Process Manager)无缝地与各种 EIS(比如 SAP、Siebel、Oracle、PeopleSoft、JD Edwards、Lotus Domino、JDBC 数据库、FTP/FTPS/SFTP 协议、平面文件系统和电子邮件服务器)集成在一起。
WebSphere Adapters 用在许多复杂业务系统的业务集成逻辑的核心位置。它们的出站功能会在业务流需要调用某些 EIS 功能时使用。在许多场景中,这些适配器必须基于仅在运行时知道的路由条件(比如业务数据或条件)动态地连接到不同的 EIS 实例。在业务逻辑要求 WebSphere Adapter 用户的应用程序在运行时动态调用不同 EIS 的时候,WebSphere Adapter 用户会面临一些挑战,本文提供了这些挑战的一个解决方案。该解决方案在一种 “无编码” 方法中使用 WebSphere ESB 中介流,这样做减少了复杂性、重复和维护工作。
以下是对 EIS 的动态调用的一些用例:
- 对于所有 WebSphere Adapter:当 EIS 没有提供负载平衡且客户希望实现基于适配器的负载平衡时使用。
- 对于所有 WebSphere Adapter:当一个 EIS 实例关闭且应用程序需要动态地故障转移到一个不同的 EIS 实例时使用。
- 对于 WebSphere Adapter for Email:当使用该适配器的客户应用程序希望基于某个值而将传入的电子邮件转发给特定的邮件服务器时使用。WebSphere JCA Adapter 中没有提供此功能。
- 对于 WebSphere Adapter for FTP:当中介流需要基于所登录的用户动态连接到不同 FTP 服务器时使用。
目前的 WebSphere Adapters 框架不允许动态连接到不同 EIS 实例的适配器配置。JCA 规范也没有明确支持动态连接。因此,WebSphere Adapters 很难提供此特性,而且在上面的 “动态调用业务场景” 下列出的用例目前无法以直观的方式实现。相反,用户必须开发和部署多个适配器实例,这带来了以下难题:
- 更高的资产和代码重复率
- 更高的业务逻辑复杂性
- 更长的开发时间
- 更长的维护时间
WebSphere ESB 支持通过动态覆盖静态定义的端点或使用目标导入来动态调用,从而重新路由消息。WebSphere ESB 还支持动态重定向响应消息。当开发并部署一个中介模块时,通过该模块的消息流使用静态信息。可以使用 WebSphere Integration Developer 输入固定的值来描述导入、绑定和目标。经过中介模块的消息然后可使用这些值。
对于一些应用程序,您可在运行时覆盖或更改一些静态值。通过覆盖为某个端点地址指定的值,可以动态完成此操作,或者可以选择一个新的目标导入。无论如何,消息流都会依据消息中的信息而进行更改。有关的更多信息,请参阅 WebSphere ESB 信息中心内的 动态调用。本文将介绍如何使用 WebSphere Adapters 和 WebSphere ESB 中介流的动态调用特性动态地调用 EIS。
- IBM Integration Developer
- 中介流的实用知识
- WebSphere Adapters 的实用知识
- 使用了 WebSphere Adapter for FTP 及其 Create 操作。
- WebSphere Adapter for FTP 部署在 WebSphere Application Server 的节点级别上。
- 定义了不同的托管连接工厂,每个工厂都通过其 JNDI 得到引用。
以下步骤为一个出站 Create 操作配置 WebSphere Adapter for FTP,但它们也适用于任何出站适配器配置。在正常情况下,FTPImport 仅可使用在其 Managed Connection Factory (MCF) 中定义的一组属性。以下步骤展示了如何将同一个 FTPImport 用于不同的属性集来动态连接到不同 FTP 服务器。
- 在面板中拖放 FTP Outbound Adapter,创建一个 FTPImport using the External Service 向导。选择 FTPImport,以便配置一个 Create 操作并导入需要的属性:
图 1. 在向导中创建 FTPImport

- 在面板上,单击 Components,然后将 Mediation Flow 组件拖放到装配图上:
图 2. 创建 Mediation Flow 组件

- 现在您需要一个新业务对象 (BO),它接受托管链接工厂 (MCF) 的 JNDI 名称。创建接受 FTP 出站所需的所有属性以及 MCF 的 JNDI 名称的 BO:
图 3. 创建一个新业务对象

- 创建一个新接口并添加一个 Request and Response 操作,该操作拥有上一步中创建的 BO:
图 4. 创建一个 Request and Response 操作

- 将此接口添加到中介流中,并将它连接到 FTPImport:
图 5. 将中介流连接到 FTPImport

- 双击 Mediation Flow 并单击 Operation Map,为这两个接口的操作建立映射:
- 您在第 4 步中创建的输入接口
- FTP Adapter 创建的接口
图 6. 映射两个接口的操作

- 第 6 步在两个操作之间创建一个 input_map,如图 7 所示:
图 7. 两个接口的中介映射

- 双击 input_map,根据您的业务需求映射所有需要的字段:
(单击此处查看大图。)
图 8. 映射所有需要的字段

- 要动态调用 EIS,只需映射
SMOHeader中的目标地址字段,它可在树结构的smo/headers/SMOHeader/Target/address路径中找到:
(单击此处查看大图。)
图 9. 映射目标地址字段

- 基于
MCF_JNDI中提供的输入,请求将使用该 MCF 执行。 - 为 MCF n 的 JNDI 提供以下 URI 格式:
jca:jndi:<JNDI of the MCF>。
以下示例演示了如何在出站请求中使用 MCF 的 JNDI。在这些示例中,借助一个已配置好的 FTPImport,您可以通过出站请求动态地调用不同的 EIS。
jca:jndi:jndi/ftp1 使用 FTPImport 引用了 MCF 的出站 Create 请求:
图 10. 示例 1 的请求

图 11. 示例 1 的响应

jca:jndi:jndi/ftp2 使用同一个 FTPImport 来引用 MCF 的出站 Create 请求:
图 12. 示例 2 的请求

图 13. 示例 2 的响应

上面两个示例表明,只使用一个 FTPImport,就可以基于两个不同的 MCF jndi/ftp1 和 jndi/ftp2 将请求发送到两个不同的 FTP 服务器。
在本文中,我们学习了如何在运行时使用 WebSphere Adapters 和 WebSphere ESB 中介流动态地调用不同 EIS 的技术和解决方案方法。这种 “无编码” 方法使您能够解决上面的 动态调用业务场景 下列出的用例。
学习
- WebSphere Adapters 参考资料
- WebSphere Adapters 信息中心
所有 WebSphere Adapters 文档的单一 Web 门户,其中包含有关安装、配置和使用 WebSphere Adapters 的概念、任务和参考信息。 - WebSphere Adapter for FTP 概述
IBM Business Process Manager V7.5 信息中心中的主题 - WebSphere Adapters 产品页面
产品收益、产品描述、产品新闻、案例分析、培训信息、支持信息等。 - WebSphere Adapters 产品库
产品演示、红皮书、白皮书等。 - WebSphere Adapters 支持
一个可搜索的数据库,包含支持问题及其解决方案,以及下载、修复和问题跟踪。 - 使用 WebSphere Adapters 的业务流程管理示例和教程
这些示例介绍了如何在使用 WebSphere Integration Developer 开发并部署到 WebSphere Process Server 或 WebSphere ESB 上的解决方案中使用 WebSphere Adapters。
- WebSphere Adapters 信息中心
- WebSphere ESB 参考资料
- WebSphere ESB 信息中心
所有 WebSphere ESB 文档的单一 Web 门户,包含有关安装、配置和使用 WebSphere ESB 的概念、任务和参考信息。 - 动态调用
WebSphere ESB 信息中心中的主题 - WebSphere ESB 开发人员参考资料页面
这些技术资料可帮助使用 WebSphere ESB 作为一个灵活的连接基础架构,集成应用程序和服务来支持 SOA。 - WebSphere ESB 开发指南
PDF 格式的开发指南手册。 - WebSphere ESB 产品页面
产品描述、产品新闻、培训信息、支持信息等。 - WebSphere ESB 文档库
WebSphere ESB 产品手册。 - WebSphere ESB 常见问题解答
有关 WebSphere ESB 及其与其他 ESB 产品的关系的常见问题。 - WebSphere ESB 支持
一个可搜索的数据库,包含支持问题及其解决方案,以及下载、修复和问题跟踪。 - 红皮书:模式:使用 WebSphere Message Broker 和 WebSphere ESB 的 SOA 设计
适合电子商务的模式是一组久经考验、可重用的资产,可用于加快开发和部署电子商务解决方案的速度。此白皮书展示了如何结合使用 WebSphere ESB 和 WebSphere Message Broker 来在 SOA 中实现一个 ESB。其中包含演示设计、开发和部署的场景。
- WebSphere ESB 信息中心
- WebSphere 参考资料
- developerWorks WebSphere 开发人员参考资料
面向使用 WebSphere 产品的开发人员的技术信息和参考资料。developerWorks WebSphere 提供了产品下载、技巧信息、支持资源,以及一个包含 2000 多篇技术文章、教程、最佳实践、IBM 红皮书和在线产品手册的免费技术库。 - developerWorks WebSphere 应用程序集成开发人员参考资料
技巧文章、下载、教程、教育、产品信息和其他参考资料,帮助您构建 WebSphere 应用程序集成和业务集成解决方案。 - developerWorks WebSphere 业务流程管理开发人员参考资料
WebSphere BPM 技巧文章、下载、教程、教育、产品信息和其他参考资料,帮助您建模、组装、部署和管理业务流程。 - 最流行的 WebSphere 试用版下载
关键 WebSphere 产品的免费试用版下载。 - WebSphere 论坛
特定于产品的论坛,您可在其中获取技术问题的答案,与其他 WebSphere 用户分享您的专家经验。 - WebSphere 点播演示
下载和观看这些自动运行的演示,了解 WebSphere 产品和技术如何帮助您的公司应对快速变化且愈加复杂的业务环境。 - developerWorks 上的 WebSphere 相关文章
由 IBM 内外的从业者和顾问编写的与 WebSphere 和相关技术相关的 3000 多篇一编辑和分配的文章。搜索您需要的信息。 - developerWorks WebSphere 每周时事通讯
developerWorks 时事通讯为您提供了您感兴趣的主题的最新文章和信息。除了 WebSphere,您可从 Java、Linux、开源、Rational、SOA、Web 服务及其他主题中选择。立即订阅并设计您的自定义邮件。 - 来自 IBM Press 的 WebSphere 相关图书
通过 Barnes & Noble 方便地在线订阅。 - 与 WebSphere 相关的活动
WebSphere 开发人员感兴趣的全球大会、展览、网络广播和其他活动。
- developerWorks WebSphere 开发人员参考资料
- developerWorks 参考资料
- IBM 软件产品试用版下载
精选的 IBM® DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 产品的免费试用版下载。 - developerWorks 博客
加入与 developerWorks 用户和作者以及 IBM 编辑和开发人员的对话。 - developerWorks 技术简报
IBM 专家举办的免费技术会议,加速您的学习曲线,帮助您在最具挑战的软件项目中取得成功。会议涵盖从一小时虚拟简报到在全球各大城市举行的持续半天或全天的实况会议。 - developerWorks 播客
收听与软件创新者举行的有趣且激动人心的讨论。 - Twitter 上的 developerWorks
查阅最新的 Twitter 消息和 URL。 - IBM Education Assistant
一组多媒体教育课件,将帮助您更好地理解 IBM 软件产品和使用它们更有效地满足您的业务需求。
- IBM 软件产品试用版下载
讨论
- 加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。
- 加入 IBM 软件下载与技术交流群组,参与在线交流。


