科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道WebSphere Enterprise Service Bus V6 的新特性

WebSphere Enterprise Service Bus V6 的新特性

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

企业服务总线(Enterprise Service Bus,ESB)是一种结构模式,这种模式为不同服务的交互提供了通用的连接和虚拟化。它为企业信息系统实现 SOA 提供了基础。

作者:ibm 来源:ibm 2007年10月6日

关键字: 应用 技术 WEBSPHERE 中间件

  • 评论
  • 分享微博
  • 分享邮件

引言

本文描述了 IBM® WebSphere® ESB V6.0.2 和 WebSphere Integration Developer V6.0.2 的关键技术特性,并且提供了开发资源的参考资料。本文将帮助架构师、服务集成人员和开发人员使用 WebSphere ESB 开发企业 SOA 解决方案。正因为具有下列的特性,才使得 WebSphere ESB 有别于其他的 ESB 产品:

  • 基于 JMS 规范的缺省消息传递引擎。
  • WebSphere Application Server 代码库:世界级的 J2EE 基础提供了行业领先级别的可用性、可伸缩性和性能。
  • 支持 J2EE、Web 服务和互操作性标准,以实现 J2EE 和 Web 服务环境中服务的灵活集成。
  • 支持服务组件体系结构 (SCA),允许在开发时和运行时轻松且动态地组装和绑定服务组件。
  • 在 WebSphere Process Server 中作为缺省的 ESB,提供了高级业务集成和流程管理。随着业务需求的出现,企业可以通过部署 WebSphere Process Server 功能,轻松地扩展其 SOA 解决方案。
  • 附带的 WebSphere Integration Developer 基于 Eclipse,并且为开发和组装服务或构建业务流程模型提供了通用的集成环境。
  • 简化的安装和配置过程,以及在管理和管理用户接口方面使用了与 WebSphere Application Server 和 WebSphere Process Server 相同的外观。

什么是 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 还提供了:

  • IBM Message Service Client for C/C++——扩展了 JMS 模型,以便在 C 和 C++ 应用程序中进行消息传递
  • IBM Message Service Client for .NET——允许 .NET 应用程序参与到基于 JMS 的信息流中
  • IBM Web Service Client for C++——允许 C 和 C++ 应用程序连接到 WebSphere 中的 Web 服务

中介模块

WebSphere ESB 中介模块是可以为服务请求者和服务提供者之间的消息提供中介的 SCA 模块。SCA 模块包含 SCA 组件或服务组件。SCA 组件是 SCA 的组成部分,可以将其组装到组合服务中。使用 WebSphere Integration Developer,您可以以图形化的方式创建和自定义 SCA 模块和组件。此外,您可以在 WebSphere ESB 管理控制台中动态地对中介模块的某些属性进行自定义,而无需重新部署该模块。通常,中介模块包含一个称为中介流组件的特定类型的 SCA 组件。中介模块最多可以包含一个中介流组件。中介模块还可以包含:

  • 外部服务的 SCA 导入——允许中介模块中的中介组件或 SCA 服务组件引用和调用该模块的外部服务。
  • SCA 导出——公开模块中的 SCA 服务组件或中介流组件,并使得该中介模块外部的服务请求者可以访问它。


图 1. WebSphere ESB 和中介模块
WebSphere ESB 中介

绑定和协议转换

通过使用中介流组件,WebSphere ESB 可以互连各种不同的服务请求者和提供者。中介组件的入站和出站协议指定为中介流组件的导出和导入组件中的绑定。WebSphere ESB 基于这些绑定执行协议转换。WebSphere ESB V6.02 支持下列绑定:

  • Web 服务绑定——允许访问 Web 服务。它们支持 SOAP/HTTP 和 SOAP/JMS 协议。
  • SCA 绑定(也称为缺省绑定)——将 SCA 模块连接到其他 SCA 模块。
  • Java™ Message Service (JMS) 1.1 绑定——支持与 WebSphere Application Server 缺省消息传递提供者的互操作性。JMS 协议可以利用各种传输类型,包括 TCP/IP 和 HTTP(以及 HTTPS)。自动地支持 JMS Message 类及其五种子类型(Text、Bytes、Object、Stream 和 Map)。
  • WebSphere 适配器绑定——支持与企业信息系统(Enterprise Information Systems,EIS)进行交互。IBM 为通过其他协议连接到各种 EIS 应用程序(如 SAP、PeopleSoft 和 Siebel)提供了基于 JCA 标准的 WebSphere 适配器。
  • WebSphere MQ JMS 绑定**——支持与基于 WebSphere MQ 的 JMS 提供者的互操作性。自动地支持 JMS Message 类及其五种子类型。
  • WebSphere MQ 绑定**——支持与本地 WebSphere MQ 应用程序的互操作性。您可以通过 WebSphere MQ 客户端连接,仅对远程队列管理器使用 WebSphere MQ 绑定;不能对本地队列管理器使用它们。

中介模块中不一定包含中介流组件。不包含中介流组件的中介模块通常用于在服务请求者和提供者之间进行协议转换。

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. 中介流组件的细节
wesb 概述

中介流和中介基元

中介流由一个或多个中介基元构成。每个流中的所有源操作具有一个输入节点,所有目标操作具有一个调出节点。您还可以提升调出节点中的 Use dynamic endpoint 属性。


请求流

图 3. 中介请求流和响应流
响应流

中介基元将消息作为服务消息对象 (SMO) 处理。SMO 是 WebSphere ESB 中不同服务之间交换的消息的逻辑表示。SMO 根据服务数据对象 (SDO) 进行建模。SMO 消息包括:Header、包含消息有效负载的正文、包含与响应流和请求流相关联的数据的上下文、跨请求或者响应流链接基元的瞬态数据。WebSphere ESB V6.0.2 支持下列中介基元:

  • Database Lookup——使用指定的数据库中的信息丰富或更新消息。
  • Message Filter——根据 XPath 表达式指定的消息内容,选择性地对消息进行路由。
  • Message Logger——在数据库中记录消息。
  • Stop——中止中介流中的路径,而不产生异常。
  • XSLT——使用 XSLT 中介基元对消息进行转换。
  • Endpoint Lookup**——动态地将消息路由到合适的服务端点。Endpoint Lookup 基元搜索 Web 服务的服务端点信息、Web 服务绑定的中介模块导出、以及 WebSphere Service Registry and Repository(以下称为 Registry and Repository)中的缺省 SCA 绑定。
  • Event Emitter**——如果出现了例外的情况(或者审核情况),则在中介流中产生一个公共基础事件。
  • Fail**——中止中介流,并生成一个异常。
  • Message Element Setter——设置消息的内容。
  • Custom**——执行 Java SCA 组件或外部服务导入中指定的自定义逻辑。您可以使用自定义中介基元访问外部转换引擎,如 WebSphere TX,它提供了方便的图形工具以处理行业标准数据格式,如 EDI 和 SWIFT。

提升的属性

中介基元具有一些属性,通过提升属性,可以使得其中的某些属性对于 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 的示例拓扑
WESB 拓扑

要实现可伸缩性和高可用性,您可以在 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 管理控制台则提供了友好的用户接口。管理功能包括:

  • 显示用于部署中介模块的应用程序的细节信息
  • 显示中介模块的概要配置属性
  • 显示中介模块中的服务导入
  • 显示中介模块中的导出:

    图 8. 在 WebSphere ESB 管理控制台中显示中介模块的细节信息
    管理控制台中的中介模块

  • 如果导入绑定为 Web 服务,您可以更改其端点 URL。如果导入使用了 SCA 绑定,您可以将其修改为指向不同的 SCA 模块作为目标。这些更改将立即生效(或者在 Network Deployment 中进行同步之后),而无需重新启动或者重新部署该模块:

    图 9. 在 WebSphere ESB 管理控制台中更改端点 URL
    更改端点

  • 显示中介模块的提升属性。您可以更改中介模块的提升属性的值**。这些更改将立即生效(或者在 Network Deployment 中进行同步之后),而无需重新启动或者重新部署该模块:

    图 10. 在 WebSphere 管理控制台中更改中介模块的提升属性
    提升属性

  • 启动尚未运行的中介模块(状态为“已停止”),或者停止正在运行的模块(状态为“已启动”)。要更改中介模块的状态,需要启动或者停止用于部署模块的应用程序。
  • 管理中介模块所使用的资源。当您将中介模块安装到 WebSphere ESB 中时,WebSphere ESB 服务器会为中介组件、导出和导入自动地定义所需的 JMS 目标和资源。可以查看并管理这些资源,例如要实现更好的性能,可以修改它们的属性。
  • 创建、配置和显示所有的 Registry and Repository 访问定义**。

** 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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章