扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
引言
本文描述了 IBM® WebSphere® ESB V6.0.2 和 WebSphere Integration Developer V6.0.2 的关键技术特性,并且提供了开发资源的参考资料。本文将帮助架构师、服务集成人员和开发人员使用 WebSphere ESB 开发企业 SOA 解决方案。正因为具有下列的特性,才使得 WebSphere ESB 有别于其他的 ESB 产品:
什么是 WebSphere ESB
异类技术和系统中各种服务之间的连接性是企业信息系统实现 SOA 的基础之一。通过缺省消息传递引擎,WebSphere ESB 在支持各种交互方式、协议、和服务质量(Quality of Service,QoS)的同时,提供了不同服务之间的通用连接。它通过中介模块,为服务请求者和服务提供者之间的消息提供中介。WebSphere ESB 提供了核心 ESB 中介功能,如消息转换和筛选、或者将消息路由到不同的服务提供者。此外,它还提供了一些其他的功能,如消息记录、使用数据库中的数据扩充消息、以及根据您的需要定制错误处理。WebSphere ESB 中介允许通过多种协议通道的服务请求者访问相同的服务。WebSphere ESB 基于 SCA,并且支持关键的 J2EE 和 Web 服务标准。它使得可以轻松地集成和部署服务,动态地管理中介服务,并为安全和监视组件提供了方便的配置和检测点。通过对 WebSphere 适配器的支持,WebSphere ESB 为许多企业应用程序提供了方便的连接,如 SAP、Siebel 和 PeopleSoft。
此外,WebSphere ESB 还提供了:
中介模块
WebSphere ESB 中介模块是可以为服务请求者和服务提供者之间的消息提供中介的 SCA 模块。SCA 模块包含 SCA 组件或服务组件。SCA 组件是 SCA 的组成部分,可以将其组装到组合服务中。使用 WebSphere Integration Developer,您可以以图形化的方式创建和自定义 SCA 模块和组件。此外,您可以在 WebSphere ESB 管理控制台中动态地对中介模块的某些属性进行自定义,而无需重新部署该模块。通常,中介模块包含一个称为中介流组件的特定类型的 SCA 组件。中介模块最多可以包含一个中介流组件。中介模块还可以包含:
图 1. WebSphere ESB 和中介模块
绑定和协议转换
通过使用中介流组件,WebSphere ESB 可以互连各种不同的服务请求者和提供者。中介组件的入站和出站协议指定为中介流组件的导出和导入组件中的绑定。WebSphere ESB 基于这些绑定执行协议转换。WebSphere ESB V6.02 支持下列绑定:
中介模块中不一定包含中介流组件。不包含中介流组件的中介模块通常用于在服务请求者和提供者之间进行协议转换。
JMS 自定义绑定
预定义的 JMS 数据绑定提供了从外部 JMS 消息使用的格式到中介模块使用的服务消息对象(Service Message Object,SMO)表示形式之间的映射。一些预定义的 JMS 绑定具有其特定的要求,例如,JMS Text 绑定要求消息正文为消息的业务对象 (BO) XML 描述,而 JMS Object 绑定则要求消息正文为序列化的 Java 数据对象。对于预定义 JMS 数据绑定所不支持的 JMS 消息类型,或对于将入站和出站 JMS 消息转换为 SMO 消息的自定义处理,您可以为中介模块的导出和导入组件指定 JMS 自定义绑定。
交互模式
WebSphere ESB 支持下列消息传递交互模型:
根据 SCA,您可以指定首选的交互方式和各种服务质量 (QoS)、以及接口的事务属性、引用和绑定。
中介流组件
中介流组件用于定义中介流。中介流组件包含:
中介流组件可以包含请求中介流和响应中介流,以实现请求-应答交互:
图 2. 中介流组件的细节
中介流和中介基元
中介流由一个或多个中介基元构成。每个流中的所有源操作具有一个输入节点,所有目标操作具有一个调出节点。您还可以提升调出节点中的 Use dynamic endpoint
属性。
图 3. 中介请求流和响应流
中介基元将消息作为服务消息对象 (SMO) 处理。SMO 是 WebSphere ESB 中不同服务之间交换的消息的逻辑表示。SMO 根据服务数据对象 (SDO) 进行建模。SMO 消息包括:Header、包含消息有效负载的正文、包含与响应流和请求流相关联的数据的上下文、跨请求或者响应流链接基元的瞬态数据。WebSphere ESB V6.0.2 支持下列中介基元:
提升的属性
中介基元具有一些属性,通过提升属性,可以使得其中的某些属性对于 WebSphere ESB 管理员来说是可见的。** 提升的属性具有一个别名,即 WebSphere ESB 管理控制台中显示的名称。如果多个属性具有相同的类型,为了给它们分配相同的值,可以为多个提升属性指定相同的别名。
** WebSphere ESB V6.0.2 中的新特性
开发环境
WebSphere Integration Developer 为开发和测试中介模块和 SCA 组件提供了集成环境。它为 SCA 编程构件提供了图形编辑器,如 Business Object Editor 和 Interface Editor。它提供了图形用户界面以便为服务组件指定组件、绑定和 QoS 限定符的详细属性。因为 WebSphere Integration Developer 构建于 Eclipse 之上,所以您可以使用它开发要部署到 WebSphere Process Server 的 SCA 模块和其他 SCA 组件。
可视的编辑器和向导
WebSphere Integration Developer 提供了几种图形编辑器和向导,用于发现和导入服务,快速开发、测试和部署中介模块。
中介模块组装编辑器
WebSphere Integration Developer 包括中介模块组装编辑器,以便以图形的方式组装中介流组件和其他 Java 组件。它还可以导入引用的服务以进行调用。这个编辑器允许您为具有支持绑定的中介组件生成一个或多个导出,以便通过多种协议通道的服务请求者能够使用它们:
图 4. 中介模块组装编辑器
中介流编辑器
WebSphere Integration Developer 还提供了图形化的中介流编辑器,通过在图形的方式中将预定义中介基元面板上的零个或多个中介基元串起来,从而构建源和目标接口之间的中介流。通过这个编辑器,可以很容易地为每个中介基元指定详细属性。例如,对于 Endpoint Lookup 基元,您可以配置一个或多个 Registry and Repository WSRR 的定义,这些定义可用于 Preferences。对于每个查找基元,您可以指定详细的属性,包括要使用的 Registry and Repository 定义、服务的 Registry and Repository 分类、以及要查询的服务的用户定义属性。
图 5. 中介流编辑器
每个中介基元的属性编辑器还显示了可提升属性的列表,您可以从中选择对 WebSphere ESB 管理员可见的属性。
图 6. 中介基元的提升属性
XSL 映射编辑器
对于 XSL Transformation 基元,WebSphere Integration Developer 提供了相应的图形编辑器,以便对从源到目标消息中的单个元素或元素数组进行映射,使用拖放的方式生成 XSL,并定义 XSL 函数。这个编辑器还允许您指定现有的 XSLT 文件以用于转换。您可以使用 XPath 编辑器来选择消息的内容,以便 Filter 中介基元使用该内容来指定基于内容的路由。
可视 Java 代码片段编辑器
对于自定义中介基元,您可以使用嵌入的 Java 代码片段编辑器或标准的 Java 编辑器为实现开发 Java 代码。通过将其转换为 Eclipse 插件,您可以将自定义中介基元添加到内置基元图形面板。
Enterprise Service Discovery 向导
WebSphere Integration Developer 还提供了 Enterprise Service Discovery 向导以发现 Registry and Repository 或 WebSphere 适配器服务构件中的服务,以生成 WebSphere 适配器 (EIS) 绑定。
测试和调试
WebSphere Integration Developer 提供了一个组件测试客户端以测试包括中介流组件的 SCA 组件。测试客户端允许您手动地为服务指定输入,或者从文件进行加载。它提供了一个模拟器,您可以在模拟器中指定返回数据以通过手工条目或从指定文件中检索的内容来模拟目标服务组件的结果。而且可以使用其中的可视化调试器来调试中介流,在这个可视化调试器中查看消息值的过程中,可以添加断点并单步跳入、单步遍历或单步跳过感兴趣的部分。
WebSphere ESB 中介模块被打包成 Enterprise Application Archive (EAR) 文件。您可以将包含中介应用程序的 EAR 文件部署到 WebSphere Integration Developer 测试环境中嵌入的 WebSphere ESB 测试服务器。在将应用程序部署到 WebSphere ESB 测试服务器时,在服务器所使用的缺省消息传递引擎中会自动地为具有 JMS 绑定的导出和导入组件生成任何所需的 JMS 消息传递资源。您可以使用命令行脚本或者基于 Web 的管理控制台为嵌入的测试服务器或外部 WebSphere ESB 服务器安装和管理这些中介应用程序。
安装和配置
WebSphere ESB 的安装和配置过程类似于 WebSphere Application Server 和 WebSphere Process Server,因此如果您熟悉其中的一种产品,就可以简化安装和配置工作。您可以使用安装向导或以静默方式采用非交互的模式安装 WebSphere ESB。在完成了安装之后,可以在独立的或者网络部署模式中创建和配置一个或多个服务器。Network Deployment 允许您从部署管理器集中地管理一组服务器。可以通过创建相应的配置文件来完成配置工作。在创建了配置文件之后,可以使用它创建服务器实例。下面是包括 WebSphere ESB 的示例拓扑:
图 7. 包括 WebSphere ESB 的示例拓扑
要实现可伸缩性和高可用性,您可以在 WebSphere Network Deployment 集群中配置 WebSphere ESB 及其相应的消息传递引擎。如果您希望启用 SCA 组件的事件监视或处理 Event Emitter 基元产生的事件,那么可以执行安装后的任务以配置公共事件基础设施 (Common Event Infrastructure)。如果您希望使用 Registry and Repository,那么需要使用 Web 管理控制台配置一个或者多个定义,这些定义可用于 Endpoint Lookup 中介基元。通过安装和配置 WebSphere ESB 所提供的消息服务客户端,您可以允许 C、C++ 或 .Net 应用程序参与到与 WebSphere ESB 的交互中。
管理和控制
因为中介模块打包在一个 EAR 文件中,所以可以将它们作为企业应用程序安装到 WebSphere ESB 服务器上。您可以使用 wsadmin 命令行工具或 WebSphere ESB 管理控制台来安装它们。您可以以不同的方式使用 wsadmin 工具,将其作为单独的命令以交互的方式使用、或者使用 jacl 脚本。WebSphere ESB 提供了一些命令,允许您显示 SCA 模块及其导入和导出。您还可以对 Web 服务和 SCA 导入绑定进行更改。脚本适用于大规模的管理任务,而 Web 管理控制台则提供了友好的用户接口。管理功能包括:
** WebSphere ESB V6.0.2 中的新特性
WebSphere ESB 使用了 WebSphere Application Server 平台所提供的全局安全框架。它支持使用 SSL 实现协议级安全,使用 WS-Security 实现 SOAP Web 服务的消息级安全。WS-Security 在导出和导入组件的 Web 服务绑定的 IBM 扩展中指定。必须启用 WebSphere ESB 的 WebSphere 全局安全,以利用存储在 WebSphere 安全注册中心(如 LDAP 用户注册中心)中的用户标识。
结束语
WebSphere ESB 提供了一些关键的 ESB 功能,以便连接 SOA 中不同的服务。在支持多种通信协议和交互模式的同时,它为通用服务连接提供了缺省 JMS 消息传递引擎。它使用预定义和用户定义的中介,为服务请求者和提供者提供中介。它支持通过基于 JCA 规范的 IBM WebSphere 适配器连接到 EIS 应用程序。由于对实现无缝服务集成的 Web 服务、J2EE 和 SCA 标准提供了本地支持,所以 WebSphere ESB 是一种支持基于标准的 SOA 的策略性企业产品。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者