企业服务总线解决方案剖析,第4部分:企业服务总线的实施策略与总线集成

开通VIP,畅享免费电子书等14项超值服

首页

好书

留言交流

下载APP

联系客服

2010.12.03

引言

IBM对ESB的产品支持

到目前为止,IBM专门支持ESB实施的主要有3种产品,WAS6SIBUS,WASESB,和WBIMessageBroker。这里按照他们出现的先后顺序简单地介绍一下他们的使用场合:

1)WBIMessageBroker

2)WAS6SIBus

3)WASESB

这是一张关于WASESB与WBIMessageBroker关系的预测图,希望大家能从中得到感性的认识。针对不同的场景和开发者的技术经验,采用更合理的设计方案。

SIBus与MessageBroker的集成

根据我们前面的讲解,无论采用哪一种ESB解决方案,ESB的各个总线之间应该是可以互联的。至少采用IBM产品所开发的ESB总线都因该能够顺利地集成在一起,这样ESB的设想才能成立。用户在SOA和ESB上的投资能得到有效的保护,这也是SOA倡导的核心思想-重用。单纯用SIBus或MessageBroker构建的同类ESB总线,它们之间的交互方式我们在这里就不再讨论了,欢迎大家阅读WAS的信息中心(infocenter)找到答案,技术上的实现并不困难。比较难办的是SIBus(或WASESB)与WBIMessageBroker如何实现互联。下面我们将就这一问题加以讨论。

这样一个案例涉及两个ESB总线的互联。实质上我们要考虑的是两个ESB底层消息中间件如何进行不同格式的消息转换以及不同体系的消息目的地地址如何相互定位。

SIBus与MQ的消息集成

我们在MessageBroker中实现了一个消息流,其中集成了两个生产系统暴露出的订单请求的Web服务。一个是公司内部的甲地的制造企业的生产产品的Web服务接口,而另外一个则是公司内部的乙地的制造企业的订单请求的Web服务接口。而产品的订单请求具体是到甲厂还是乙厂生产,则取决下订单时所携带的路由信息。

MessageBroker的消息流处理的是MQ的队列的消息,因此SIBus与MessageBroker的互联实质上只是SIBus与MQ的互联。SIBus只会与WBIMessageBroker的消息流的入队列和出队列交互。SIBus将订单请求放到MessageBroker的入队列中,而MessageBroker会将消息处理完后放到出队列中。因此在我们这个场景中,我们需要做的就是在用户查询自己的零件的价格时,如果该零件的库存量为零,就需要通过SIBus向MessageBroker部署的消息流的入队列发送一条消息。并且通过读写MessageBroker处理完放入到其MQ出队列中的消息查询所下订单的状态。

Websphere6支持服务集成总线(SIBus)与WebsphereMQ的互联,通过两者的互联,可以实现消息在SIBUS与MQ平台之间信息流的互通,而用户则无需考虑其中的消息格式的转换和寻址。

实现SIBus与MQ互联,需要做的主要工作是在SIBus和MQ中配置与对方通信的相应配置。由于SIBus与MQ是两个单独的产品,所以它们之间的通信需要在配置时使用相同的名称来达到识别的目的。

在SIBus上需要定义外部总线,消息引擎的MQ链接等。其中的消息引擎的MQ链接是关键之处,其发送方通道的配置告诉SIBus如何找到WebsphereMQ的队列管理器,而接受方通道则是从MQ接受消息。

在WebsphereMQ中的配置相对来说则更易理解,因为MQ中的配置其实就是与远程队列管理器的配置一样。在MQ看来,SIBus上的消息引擎似乎就是一个远程主机上的MQ队列管理器,通过在MQ上定义发送方通道和传输队列,就可以实现两者的连接。如果需要从MQ上发送一个消息到达SIBus上只需在MQ上定义一个远程队列。远程队列的作用就是将消息映射回SIBus上定义的本地队列中。

下面分别介绍在SIBus与MQ中需要做的配置,以及在配置完成后如何定义队列使的消息可以实现在SIBus和MQ之间自由发送。详细的配置步骤会在样例下载中有安装文档说明,这里只是介绍重要的概念。

SIBus中的配置

1)首先需要在SIBus中定义外部总线,需要注意的是必须将"路由定义类型"选为"直接,MQ链接",这说明了外部总线的类型。当需要在Websphere中互联SIBus时就需要定义外部总线。这里我们虽然不是SIBus之间的互联,但是为了和Websphere之外的MQ连接,也需要定义外部总线。在外部总线上我们可以定义属于其的外部目标,而这个外部目标将扮演MQ中的队列在SIBus中的代理。下面我们在配置消息传递引擎上的MQ链接时,需要使用这个外部总线名。

2)定义消息传递引擎,把服务器作为总线成员添加后,总线上就会有对应的消息传递引擎。消息传递引擎会实际负责与MQ通信的处理。我们需要在消息传递引擎中创建"WebsphereMQ链接"来设置其与MQ互联的参数。

选择"LOCALBUS"的"其他属性"=>"消息传递引擎"。单击引擎名,选择"其他属性"=>"WebsphereMQ链接",一共有四个步骤需要完成。分别详细说明如下。

步骤1、链接名称设置为"BusToMQ",外部总线选择"FOREIGN_BUS",队列管理器名称"QM_TheBus",单击"下一步"。

链接名称是一个可选的参数,可以自由命名。但是外部总线名称必须选择在此之前创建的外部总线,例中为"FOREIGN_BUS"。队列管理器的名称也很重要,前面说过,消息传递引擎在MQ看来就类似一个远程的MQ,而MQ与SIBus的通信方式与普通的远程主机上的MQ的通信的配置并没有什么不同。既然消息传递引擎模拟MQ,那么我们就需要定义队列管理器的名称。例中为QM_TheBus,这个名称在后面MQ的配置仍然会发挥作用。它必须与MQ中定义的发送方通道的传输队列的名称一致。它也是在MQ中定义一个远程队列时所映射到的SIBus上的本地队列的队列管理器的名称。

步骤2:发送方通道WebSphereMQ链接属性。发送方通道和接收方通道成对地起作用。该通道将成为用于将消息从总线发送到WebSphereMQ的连接。它需要与我们的MQ的队列管理器所使用的名称、主机名和端口相匹配,以接收来自总线的消息。缺省情况下,队列管理器使用端口1414接收传入的消息。由于我们的样例中MQ与SIBus存在于同一台主机上,因此主机名为localhost。这也是MessageBroker所部署的消息流所在的主机名。

需要注意的是这里定义的发送方MQ通道名必须与后面MQ配置中定义的接受方通道名一致。在没有启用安全性的情况下,传输链选择如图所示的OutboundBasicMQLink

步骤3:接受方通道的名称必须与MQ中定义的发送方通道的名称设置一致,输入"MQToBus"。

步骤4:其他所有的选项都使用缺省选项,保存之。

MQ中的配置

MQ中的配置主要是两个通道,一个是用来接受SIBus的消息传递引擎发送过来的接受方通道,其名称必须与SIBus中消息传递引擎的发送方通道名称一致。另外一个是用来向消息传递引擎发送消息的发送方通道,需要首先定义一个传输队列,并且设置远程主机的地址和端口。

1)创建传输队列

在WebsphereMQ资源管理器的队列中新建一个本地队列,名称设置为"QM_TheBus",使用类型选择为"传输"。

2)定义MQ发送方通道

在WebsphereMQ资源管理器中选择高级=>通道,选择新建发送方通道。

3)定义接受方通道

同样在高级=>通道中新建一个通道,这次选择接受方通道。将通道名称设置成SIBus中定义的发送方通道的名称"busToMQ",传输协议选择"TCP/IP"。

从SIBus向MQ发送消息

现在SIBus与MQ互联必需的两者之间的配置已经完成了。为了使订单请求能够从SIBus上到达MQ,我们需要在SIBus上定义一个远程目标(ForeignDestination)。这个远程目标是MessageBroker的MQ入队列在SIBus上的代理。发送到SIBus上的这个远程目标的消息将会通过SIBus上的消息传递引擎和MQ的接受方通道最终达到MQ的队列管理器上的队列中。订单消息到达这个队列后,因为是MessageBroker部署的消息流的入队列,MessageBroker会取走这个消息,随后做处理,处理后的消息会存放在MessageBroker定义的出队列中。例中MQ的队列管理器为WBRK_QM.。

1)在总线的"其他属性"=>"目标",点击进入,选择新建,目标类型选择"外部"。

2)设置属性

从MQ向SIBus发送消息

MessageBroker处理结束的订单状态的消息到达MQ出队列后,我们需要将它发送到SIBus上。为了完成这个任务,需要分别在SIBus上定义队列目标和在MQ上定义远程队列。SIBus上的队列目标的创建与外部目标的创建过程类似,只是目标类型必须选择"队列"而不是"外部"。SIBus上的队列(例中为LocalQueue)创建成功后,我们就可以在MQ的队列管理器(例中为WBRK_QM)定义一个远程队列映射到SIBus上的队列目标LocalQueue。为了与MessageBroker消息流的处理集成起来,这里在MQ中定义的远程队列也必须同时是在MessageBroker中的消息流的出队列。

1)在WebSphereMQ队列管理器中选择WBRK_QM队列管理器,扩展Queue,右键选择New=>RemoteQueueDefinition

2)输入或设置以下值

MessageBroker中的消息转换

前面讲述的是如何在两个不同的策略实现的ESB上做寻址,但是当消息到达MessageBroker实现的总线时,为了能够调用MessageBroker的消息流中集成的制造厂的订单请求Web服务接口,我们需要对消息的格式进行转换。

MessageBroker中对于消息的处理有很好的语言支持,也就是ESQL,通过它我们可以很方便的根据MQ的消息体中的内容,构造新的SOAP消息。在Web服务返回后,我们需要根据返回的SOAP消息体构建新的MQ消息。

在开发从MQ消息请求制造厂的订单请求Web服务时,需要注意的几个问题是

1)MQ的消息头

为了能将Web服务的返回的SOAP消息重新构造成MQ的消息,我们需要在MQ的消息转换成SOAP消息保留MQ的头消息。在ESQL中通过将MQ的头消息保存到环境中可以达到这个目的。

SETEnvironment.MySavedMQMD=InputRoot.MQMD;

2)MessageBroker中如何集成Web服务的调用

在MessageBroker中提供了一组内嵌的节点可以集成Web服务的调用,HttpRequest节点就是一个用来配置集成Web服务请求的节点。在HttpRequest节点的属性中可以设置甲或乙制造厂的订单请求的Web服务的URL,如下图所示:

3)在ESQL中使用XMLNS域处理消息格式的转换

小结

到这里,SIBus与WBIMessageBroker的集成工作已经完成。在我们的场景中,不同策略实现的ESB的互联发生在当用户查询自己生产的零件的价格并且发现零件库存为零。这时会往SIBus上的外部目标写入订单请求消息。通过互联配置,订单请求消息会到达MQ的队列中。

MessageBroker的消息流根据消息的内容路由到甲或乙两个不同的制造厂。MessageBroker的消息流会将MQ的消息转换成SOAP的请求消息后,请求甲或乙两个不同制造厂的提供的订单请求接口。而订单请求的状态返回也是SOAP的返回消息,再转换成MQ的消息后,将会放到MQ的出队列中。而MQ出队列的消息通过互联的配置又路由回了SIBus中。

回顾一下我们所做的主要工作在于如何在SIBus和MQ中配置与对方的通信,因为是相互独立的软件,所以经常遇到必须将某些名称设置为一致的情况,这是读者在实际配置时必须要注意的一点。由于篇幅的关系,随文可以下载的样例中包含了更加详细的配置说明过程。

参考资料

作者简介

张军,IBMSOADesignCenter工程师,对J2EE、WebService,SIBus以及WBIMessageBroker有着丰富的实践经验。

THE END
1.服务方案范文(通用15篇)服务方案范文(通用15篇) 为了确保我们的努力取得实效,常常需要提前准备一份具体、详细、针对性强的方案,方案是从目的、要求、方式、方法、进度等方面进行安排的书面计划。那么制定方案需要注意哪些问题呢?以下是小编整理的服务方案范文,欢迎阅读与收藏。 服务方案 1 https://www.ruiwen.com/fuwufangan/6179872.html
2.客户服务方案(通用11篇)客户服务方案 篇6 一、组建大客户服务团队 大客户服务团队的构成如下表所示。 大客户服务团队构成表 团队构成具体内容 大客户经理带领团队完成对大客户的服务 销售支持主要对客户的市场营销工作进行销售上的指导 市场支持对客户的营销策略、市场规划进行支持 https://www.unjs.com/fanwenku/268037.html
3.服务实施方案(精选11篇)(3)、不得与社会机构合作进行有偿服务。 (4)、看管教师要做好看管记录详细记录每天看管情况。出现紧急情况时及时救助并通知学生监护人确保学生安全。 服务实施方案 2 根据省妇联《关于做好20xx年劳务品牌培训项目家政服务员培训工作的通知》要求,为提高我县妇女的技能素质、增强就业竞争能力,切实增加农民收入,我校立https://www.oh100.com/a/202209/5277652.html
4.分布式IM及Netty服务集群解决方案netty集群方案使用netty开发分布式Im,提供分布netty集群解决方案。服务端通过负载均衡策略与服务集群建立连接,消息发送通过服务间集群的通信进行消息转发。 二、集群架构 三、项目地址 https://github.com/beardlessCat/im,烦请star 1.客户端 用户聊天客户端,客户端连接IM服务需要进行用户认证。用户认证成功之后,开始连接上线。 https://blog.csdn.net/J_Bang/article/details/120438931
5.呼叫中心如何通过个性化服务策略提升客户体验02 服务策略方案选题与设计 个性化服务策略的选题与设计是一个复杂而细致的过程,需要综合考虑多个方面,以确保策略的有效性与可行性;需要注意成本与效益回报、隐私保护、客户需求程度、企业匹配度等多个方面。 经过数据收集与分析,整理出客群的基本信息(可分为:年龄、性别、地区等)、热线拨打记录与频次(可分为:偶有咨https://cxhub.cn/post/03CGbQCn8WulFF8A
6.策略服务(精选十篇)2.3 制定精准化服务方案 对于重点电能用户如重工业企业, 对于普通电能用户用电过程中出现的普遍性问题, 电网公司应当制定针对性、精准化的服务方案, 尽快帮助用户解决用电问题, 提升用电体验。一方面, 电网公司在外服务人员应当及时对用户的用电问题、用电需求进行分析总结和上报, 帮助电网公司控制层和决策层及时发现https://www.360wenmi.com/f/cnkeys6cllxr.html
7.城市建筑垃圾清运服务方案行业新闻三、实施策略与建议 加强宣传教育,提高市民和施工单位对建筑垃圾分类和清运的认识和重视程度。 引入市场机制,鼓励企业参与建筑垃圾清运和处理业务,推动产业化发展。 加强技术研发和创新,提高建筑垃圾资源化利用水平,降低处理成本。 建立跨部门协作机制,形成合力,共同推动城市建筑垃圾清运服务方案的实施。 http://www.szhfhj.cn/xingyexinwen/32-479.html
8.英大策略优选混合型证券投资基金招募说明书(更新)(2023年第2号)(10)依据《基金合同》及有关法律规定决定基金收益的分配方案; (11)在《基金合同》约定的范围内,拒绝或暂停受理申购与赎回申请; (12)在符合有关法律法规和《基金合同》的前提下,经与基金托管人协商 一致后,决定和调整除调高管理费率、托管费率、销售服务费率之外的基金相关 http://www.howbuy.com/fund/info/dtl/0016073432189.htm
9.联建光电:东兴证券股份有限公司关于公司发行股份及支付现金购买户传播策略,通过公司拥有的户外媒体资源网络,为客户提供广告发布服务。 励唐营销是一家专业提供活动传播服务的企业,为客户提供的线下活动管理 全业务链一体化服务,主要包括营销策略和活动的策划,活动具体方案的创意和 设计,活动现场运营和管理。 远洋传媒主要基于自身在全国范围内整合的第三方户外媒体资源,向客户提 供一https://stock.stockstar.com/notice/JC2015120800002815_32.shtml
10.系统采购项目实施方案(范文五篇)实施方案风险对策计划是为了降低项目风险的损害而分析风险、制定风险应对策略方案的过程,包括识别风险、量化风险、编制风险应对策略方案等过程。 7、项目采购计划 项目采购计划过程就是识别哪些项目需求可应通过从本企业外部采购产品或设备来得到满足。如果是软件开发工作的采购,也就是外包,应当同时制定对外包的进度监控和质量控制的https://m.588k.com/qywd/ssfa/1116229.html
11.系统规划与管理师论文方向:论文备考指南解析考生需具备对服务成本进行科学评估的能力,并设计出符合成本效益原则的服务方案。同时,需考虑方案的风险因素,制定风险应对策略。 3. 规划设计实施与评价 论文中应体现规划设计从理论到实践的转化过程,包括实施步骤、关键节点控制及实施后的效果评价。通过实例分析,展示规划设计在实际项目中的应用效果。 https://www.hqwx.com/web_news/html/2024-7/17219722855545.html
12.市场营销策划书14篇2、业务范围与服务宗旨 本公司是一家集数码产品的研发、设计、生产、销售及服务为一体的高科技企业,生产产品主要包括各式优盘、闪存卡、mp3mp4播放器等数码电子产品,但本公司主打销售u盘、闪存卡之类。 品质是我们公司生产和发展的基础,拥有先进的生产机器,高水平的技术人员,保证了本公司产品在急速变化的市场上占有一席https://www.cnfla.com/cehuashu/2342215.html
13.个人网店创业计划书(通用6篇)第三,努力提高服务质量,要让每一位顾客都能感受到一种贴心的售前、售中和售后服务,打消客户在购物时的后顾之忧。必要时还可对顾客制定个性化服务方案,打造店铺的服务品牌形象。 (2)推广策略 第一、朋友推广:我们可以通过周边的朋友,宣传我们的店铺让我们的店铺点击率上升,自己的产品也得到好的销售量。 https://www.fwsir.com/fanwen/html/fanwen_20220607082030_1828878.html
14.产品运营策划方案(精选5篇)产品运营策划方案(精选5篇) 为了确保工作或事情能高效地开展,常常需要预先准备方案,方案可以对一个行动明确一个大概的方向。写方案需要注意哪些格式呢?下面是小编为大家整理的产品运营策划方案,希望能够帮助到大家。 产品运营策划方案 篇1 一、市场策略规划 https://www.wenshubang.com/fangan/1014646.html