IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  WebSphere  >

IBM WebSphere 开发者技术期刊: 使用 WebSphere Application Server V6 构建企业服务总线 —— 第二部分

业务需求以及总线

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Rachel Reinitz (rreinitz@us.ibm.com), 高级 IT 咨询专家, IBM
Andre Tost (atost@us.ibm.com), 高级技术人员, IBM

2005 年 4 月 01 日

这是本系列文章的第二部分,描述了如何在 IBM® WebSphere® Application Server V6 使用新的消息传递引擎构建企业服务器总线(ESB),SOA 基础结构的关键部分。这篇文章描述了使用 WebSphere V6 Messaging Resources 构建企业服务总线(ESB)的样本业务案例,并且阐明了设置总线实例的步骤。

引言

在本系列文章的第一部分中,我们介绍了 WebSphere V6 Messaging Resources 的核心概念,它可以用于构建企业服务总线(ESB)。在第二部分中,我们介绍了关于需求的业务场景,需求会导致构建企业业务总线,也会完成创建 "总线" 实例的步骤并且为了使其用在 Web 服务上而进行设置。我们将会在整个系列的文章中使用该业务场景来提供逼真的的上下文。





回页首


业务问题

我们虚构的公司,我们称之为 "Posts-R-US," 提供包裹运输服务,其中包括:

  • 消费者运输(与邮局进行竞争)。
  • 已签约的业务运输。
  • OEM 运输(例如,对于网上零售商)。
  • 带有可选回执有保证的运送。

Posts-R-US 发展地很迅速。 近来公司收购了一家欧洲公司,"EurPosts",并且需要将 EurPosts 系统与 Posts-R-US 系统集成在一起。包括直接的网上存在、库房、存储面积、运输队、航空系统、以及 OEM在内,他们需要像许多不同类型的客户提供服务。

为了降低花费,保持竞争力,并且改善消费者的体验,Posts-R-US 需要改进他们不同系统的集成。当前,当开发了新的系统合并了新的系统的时候,需要跨越许多技术大规模点到点的集成。因此,他们决定开发企业服务总线作为促进其集成的核心组件。Posts-R-US 也打算,通过使用业务流程执行语言(BPEL)和相关工具(参阅 参考资料),改进其业务流程的自动化操作和适应性。

图 1 展示一些 Posts-R-US 需要与其彼此进行集成的系统的概述。


图 1. 需要集成的系统
图 1. 需要集成的系统




回页首


技术环境

重要客户和 Posts-R-US 系统 应用了包括 WebSphere MQ、Web 服务、EJB™ 组件、.NET® 客户端、发布/订阅、CICS® 遗留系统、数据库、SAP®、以及其它的第三方应用程序在内的大量技术。图 1 所展示的系统是通过大量的技术才实现的,因此添加企业服务总线跨越大量技术地简化了集成。

图 2 展示了用于 Posts-R-US 业务的需要集成的技术实例以及企业服务总线是如何简化所需连接的。


图 2. 使用企业服务总线简化所需连接
图 2. 使用企业服务总线简化所需连接

在本系列的文章中随后的几篇专栏文章中,实例将会基于业务系统以及图 2 所示的技术,并且将会展示 WebSphere Application Server V6 可以如何被用于构建满足了该公司集成需求的企业服务总线。我们不会详尽地完成构建的企业服务总线的架构方面以及它会怎样实现优质集成;我们将会转而重视实现的依据。

下一章节通过所需的基本设置使用 Web 服务能力创建企业服务总线。





回页首


基本设置

作为真正的第一步,我们将会创建系统集成总线(SIB 或 SIBus)并且将它分配给 WebSphere Application Server 的实例。接下来我们启用总线将 Web 服务用作协议。

假设
本章节的使用说明假设了独立 WebSphere Application Server 的缺省安装。如果使用 WebSphere Application Server Base、"AppSrv01"、以及 WebSphere Application Server Network Deployment(ND),您的缺省安装被称为 "default" 。使用说明假设服务器为 "server1" 并且节点名为 "node1"。

为配置文件设置命令窗口:

  1. 改变为 <WAS_HOME>/profiles/<profilename>/bin 目录。
  2. 通过执行 setupCmdLine.bat 为配置文件设置命令窗口。

创建总线

要创建一个总线实例:

  1. 打开 WebSphere Application Server 管理控制台(服务器必须保持运行)。
  2. 在左侧的导航面板中选择 Service Integration => Buses
  3. 选择 Buses,然后在下面的对话框中选择 New,就解压缩创建了总线。
  4. 命名新总线 TheBus 并且选择 OK
  5. 保存您所作的修改,然后在列表中可以看到新总线(图 3)。


图 3. WebSphere Application Server 管理控制台中的新总线
图 3. WebSphere Application Server 管理控制台中的新总线

添加总线成员

总线需要被分配到运行着一个或多个应用程序的服务器上。对于大多数开发工作来说,您将创建并把单独的总线成员分配到总线上。当添加了总线成员,该 WebSphere 实例中将会创建消息传递引擎,它拥有自己的消息数据存储。对于我们来说,我们拥有只带有唯一的总线成员的总线,该成员是单独的 WebSphere Application Server 实例:

  1. 选择 TheBus
  2. 在接下来的对话框中选择 Bus Members然后点击 Add
  3. 确定选择了 Server 单选按钮。
  4. 从服务器选择框中选择 node1:server1,很可能存在默认的选项。
  5. 单击 Next 以及 Finish,接下来保存您所作的修改。

现在您已经为使用 WebSphere Messaging Resources 总线做好了准备。





回页首


设置 Web 服务

为了能够接收 Web 服务请求、将消息转换为中介中的 SOAP 消息、以及发送Web 服务请求,WebSphere Messaging Resources 要求某些设置来启用总线。服务集成总线的 Web 服务特征在WebSphere Application Server V6 信息中心中称为 SIBWS(参阅 参考资料)。

与我们在 第一部分 中描述的一样,WebSphere Messaging Resources 将所有输入的消息转换为服务信息对象(SDO)。SDO 存储库用于存储 WSDL 定义并且 SIBus 将这些定义用作 Web 服务支持的一部分。因此,您需要做的第一件事就是创建 SDO 存储库。

此外,为了总线可以从客户端接收 Web 服务请求,总线需要用端点监听器进行配置;如同它们的名字所暗示的,端点监听器通过特定的端口监听输入的 Web 服务消息。存在为 HTTP 上的 SOAP 和 JMS 上的 SOAP 设置的端点监听器。为了启用总线发送 Web 服务请求,总线必须以资源适配器配置。(在随后的文章中,我们将会阐释为了接收输入的 Web 服务请求、被调用的入站服务,以及发送 Web 服务请求、被调用的出站服务怎样配置总线。)

安装 SDO 存储库

SDO 存储库可以使用 IBM Cloudscape® 数据库,数据库作为您的 WebSphere Application Server 安装的一部分被自动安装,或者您可以为了使用您选择的数据库进行配置。提供 -createDb 标记作为为了使用 Cloudscape 而建立的指令的一部分。

安装 SDO 存储库:

  1. 在命令窗口中,将路径改为 <WAS_HOME>/bin,然后执行:
    wsadmin -f installSdoRepository.jacl -createDb node1 server1
  2. 在 WebSphere 管理控制台中,Enterprise Applications 下,现在您应该看到新的应用程序,名为 SDO Repository,顺利地启动。

现在任何 Web 服务的特征配置都在 SDO 存储库中存储了恰当的定义,无须任何进一步的设置。一般来说,您将永远不会与该存储库直接打交道。

安装 SIbus Web 服务资源适配器

至于充当 Web 服务请求程序的总线,向接收程序发送 Web 服务消息,它必须以资源适配器来配置。为了设置 SIBWS 应用程序(在下一章节中描述)和安装资源适配器,包括在 sibwsInstall.jacl 文件中的脚本是由 WebSphere Application Server 提供的:

  1. 在命令窗口中,将路径改为 <WAS_HOME>/bin 并且执行:
    wsadmin -f ../util/sibwsInstall.jacl INSTALL_RA -installRoot "C:/Program Files/IBM/WebSphere/AppServer" -nodeName node1
  2. 您应该看到这条消息:
    已经顺利地启动了资源适配器:SIB_RA。

安装以及配置端点监听器

端点监听器需要对于每一个您希望使用的协议进行安装和配置,这样做是为了将 Web 服务请求接收到总线上。为了这些端点监听器可以运行,您还需要安装 SIBWS 应用程序。脚本同我们安装资源适配器所用的是相同的,sibwsInstall.jacl,用于安装端点监听器,只是以不同的参数。在安装之后,每个端点监听器都需要管理控制台中的附加的配置。在安装应用程序和端点监听器之前,务必要创建总线以及安装资源适配器

为每个协议设置了两个端点监听器。您可以将一个用于将来自外部客户端的请求纳入总线,并且将第二个用于来自内部客户端的请求。您可以不同地为每个监听器配置安全性。如果您启用了全局安全性,那么没有用户可以访问任何的入站服务。WebSphere Application Server V6 信息中心提供的使用说明是关于为了允许访问如何配置的安全设置的。

安装 SIBWS 应用程序:

  1. 在命令窗口中,将路径改为 <WAS_HOME>/bin 并且执行:
    wsadmin -f ../util/sibwsInstall.jacl INSTALL -installRoot "C:/Program Files/IBM/WebSphere/AppServer" -serverName server1 -nodeName node1
  2. 在 WebSphere Application Server 管理控制台中,Enterprise Applications 之下,现在您应该看到新的应用程序,名为 sibws.node1.server1,顺利地启动。为了该应用程序可以顺利地启动,必须首先安装资源适配器。(该应用程序的名称也许在基于在安装期间您选择的节点和服务器的名称的环境有差异。)
  3. 对于每个获得支持的 Web 服务协议(例如,HTTP 或 JMS)来说,要使用 sibwsInstall.jacl 脚本安装两个端点监听器。例如,想要安装 HTTP 端点监听器应用程序,需要执行:
    wsadmin -f ../util/ sibwsInstall.jacl INSTALL_HTTP -installRoot "C:/Program Files/IBM/WebSphere/AppServer" -serverName server1 -nodeName node1
  4. 在管理控制台中,Enterprise Applications 之下,您应该看到列出的两个新的应用程序,名为 sibwshttp1.node1.server1 sibwshttp2.node1.server1。两个都应该可以顺利启动。

    在WebSphere Application Server 管理控制台中,您的 Enterprise Applications 窗口当前应该如图 4 所示:
    图 4. 管理控制台中的 Enterprise Applications
    图 4. 管理控制台中的 Enterprise Applications
  5. 既然应经实施了监听器的编码,我们将会创建指定的端点监听器。转到 Servers => Application Servers => server 1 => Endpoint Listeners ,然后选择 New
  6. 在字段中输入如下所列的值(并且在图 5 中);这些值都是特别指定的 —— 名称与数值一定要与那些 WebSphere Application Server V6 信息中心的端点监听配置细节部分中指定的内容相匹配:
    • 名称:SOAPHTTPChannel1 (这一指定的名称是要求的)
    • URLRoot: http://localhost:9080/wsgwsoaphttp1/
    • WSDL Serving HTTP URL 根目录:http://localhost:9080/wsgwsoaphttp1/
  7. 单击 OK,然后保存您所作的修改。
    图 5. 端点监听器的配置
    图 5. 端点监听器的配置
  8. 按照新的端点监听器配置新的端点监听器连接到我们的总线上,SOAPHTTPChannel1,然后是 Connection Properties
  9. 单击 New,并且选择您的总线,TheBus
  10. 单击 OK 然后保存您所作的修改。
  11. 转到 TheBus => Destinations。应该存在新的名为node1.server1. SOAPHTTPChannel1 的终点。这一新终点是一切通过已定义端点到达的消息被选择路由的地方。换句话说,所有输入的 SOAP/HTTP Web 服务请求现在将会转到终点 SOAPHTTPChannel1。





回页首


结束语

在这篇文章中,我们描述了使用 WebSphere Application Server V6 Messaging Resources 构建企业服务总线的业务场景。我们创建了自己的总线并且设置它为 Web 服务使用。在第三部分中,我们将会开始开发我们的企业总线,并且开始通过开发客户端实现场景的需求来向总线发送 JMS 上的确认消息,然后是向消息驱动 bean 发送。



参考资料



作者简介

Rachel Reinitz 是 IBM Software Services for WebSphere 重点研究 Web 服务的高级 IT 咨询专家。关于怎样才能将面向服务的体系结构及 Web 服务用于达到他们的业务以及技术目标,Rachel 就其咨询客户和独立软件商。她进行了 IBM's Advanced Web Services 培训教程的开发并且经常作为会议主持人。Rachel 同时也是有过 4 年 XP 实践,经验丰富的极限编程专家。她居住在加利福尼亚州的 Bay 区,喜爱徒步旅行、社会活动、以及国际旅行。


Andre Tost 是 IBM WebSphere Business Development group 的一位高级技术人员,他在这个部门帮助 IBM 的战略联盟伙伴把他们的应用程序与 WebSphere 集成在一起。他的工作重点是贯穿整个 WebSphere 产品系列的 Web 服务技术。在开始从事他目前的任务之前,他有十年的时间是在 IBM 软件开发工作中担任各种开发和体系结构方面的角色,最近是在从事 WebSphere Business Components 产品。他出生于德国,目前在美国明尼苏达州的罗切斯特居住和工作。在业余时间,他喜欢和他的家人在一起,只要有可能就去踢球或者看球。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?







回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款