1 WebSphere MQ出现的背景
许多企业随着自身规模不断壮大和信息化建设的加快,会出现不同部门有不同的应用系统,不同子系统完成不同的功能,但各个系统之间往往互不相连或联系很少,而形成诸多内部“信息孤岛”的现象。因此,每次互联都需要单独设立1个项目,将双方的应用系统进行改造。浪费了许多人力物力,直接影响企业内部整个运作,影响企业的快速决策,对企业长期的发展形成瓶颈。面对这种情况,如何使企业像是一个有机的生物体,有能力进行自身的新陈代谢,自我更新,各个子系统分工明确,互相之间又具备有机的联系。系统的整合是个好办法,换句话说,就是不需要改造各个子系统,而是借助某种中间件来加强子系统间的联系。
IBM(International Business Machines Corporation),国际商业机器公司,或万国商业机器公司的简称。总公司在纽约州阿蒙克市,1911年创立于美国,是的信息技术和业务解决方案公司,目前拥有雇员 30多万人,业务遍及160多个国家和地区。该公司创立时的主要业务为商用打字机,及后转为文字处理机,然后到计算机和有关服务,2011年IBM在中韩两国行贿被罚1000万美元。
2 WebSphere MQ的基本概念[1]
2.1 消息
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的软件。
2.2 队列
队列可以看作是用于存储消息的容器,并且存储是有顺序的。队列可分为本地队列、远程队列、模型队列、别名队列等,其中只有本地队列是真正意义上的队列实体,可以存放消息;远程队列和别名队列只是一种队列定义,指向另一个队列实体,即远程队列指向的是其他队列管理器中的队列,别名队列指向的是本地队列管理器中的队列;模型队列描述了模型的属性,当打开模型队列的时候,队列管理器会以这个定义为模型,创建1个本地队列,即动态队列。
2.3 队列管理器
专门为旅游同行们量身定做的集网上即时通信、业务交易、办公管理于一体的软件。您可以使用同业MQ安全、快捷、高效地与各地的旅游同行像用QQ一样实时文字聊天、音频聊天、视频聊天、传文件、建讨论组、建群,还可以在网上进行旅游产品在线交易;集旅游线路、机票、景区、酒店、车队、旅游用品、购物点、旅游供求信息等资源为一体打造旅游同业资源交流共享! 另外,所有的交易结果都能通过同业MQ系统自动提醒,全面满足您推广业务、交易洽谈、交流经验、广交朋友的需求。
2.4 通道
通道是WebSphere MQ系统中队列管理器通信双方建立起来的通信连接,是MQ产品的精华。可以在不同的通道上配置不同的通信协议,使得编程接口与通信协议无关,通道是架设在通信协议之上的对象。
在WebSphere MQ中,主要有两大通道类型:消息通道和MQI通道。
消息通道是通过消息代理(MCA)把2个队列管理器连接起来的单向连接,因此,要实现把分布式的队列中的消息从源队列管理器发送到目的队列管理器,必需在源队列管理器中定义1个发送通道,在目的队列管理器中定义1个接收通道。当要传输消息时,源系统的发送通道启动通道,向接收通道发送启动请求,然后从传输队列发送消息到接收通道;接收通道把消息放到目标队列。消息通道分为发送通道、接收通道、服务器通道、请求器通道、群集发送通道、群集接收通道等不同类型,供用户在不同情况下使用。
MQI通道是WebSphere MQ客户端和服务器上的队列管理器的通信通道,是双向而且是同步的,这点不同于消息通道。
3 WebSphere MQ的工作原理
WebSphere MQ的工作原理。
(1)本地通信:程序A、B运行于同一系统1中,程序A向队列1发送1条信息后,程序B需要时就可以获取该信息。
(2)远程通信:若信息传输的目标改为程序C,程序A向队列2发送1条信息后,系统1中的队列管理器1发现队列2实际上位于系统2中,它会将信息放到本地的1个特殊队列——传输队列;接着消息通道代理(MCA)将从传输队列中读取该消息,并传递到系统2,然后等待确认。这是MQ基本也是重要的技术,即确保信息传输,并且是1次且仅1次的传递[2]。
4 WebSphere MQ的双向通信配置应用举例
根据WebSphere MQ的工作原理,配置2个队列管理器,实现两者双向通信。
脚本如下:
QM1:
DEFIEN QLOCAL(QL_QM1) REPLACE
DEFINE QLOCAL(SENDER1) USAGE(XMITQ) REPLACE
DEFINE QREMOTE(REMOTE1) RNAME(QL_QM2)
RQMNAME(QM2) XMITQ(SENDER1) REPLACE
DEFINE CHANNEL(QM1.QM2) CHLTYPE(SVR)
TRPTYPE(TCP) CONNAME(192.168.0.100(1416))
XMITQ(SENDER1) REPLACE
DEFINE CHANNEL(QM2.QM1) CHLTYPE(RCVR)
TRPTYPE(TCP) REPLACE
QM2:
DEFIEN QLOCAL(QL_QM2) REPLACE
DEFINE QLOCAL(SENDER2) USAGE(XMITQ) REPLACE
DEFINE QREMOTE(REMOTE2) RNAME(QL_QM1)
RQMNAME(QM1) XMITQ(SENDER2) REPLACE
DEFINE CHANNEL(QM2.QM1) CHLTYPE(SVR)
TRPTYPE(TCP) CONNAME (192.168.0.100(1415))
XMITQ(SENDER2) REPLACE
DEFINE CHANNEL(QM1.QM2) CHLTYPE(RCVR)
TRPTYPE(TCP) REPLACE
5 WebSphere MQ的通信方式
WebSphere MQ的通信方式分为点对点和订阅/发布的方式[3]。
5.1 点对点方式
点对点方式是为传统和常见的通信方式,它是通过定义远程队列、传输队列和通道的方式将队列管理器联系起来,可实现2个单点系统之间的直接互连或者多点系统链式的间接互联。
点对点的另一种扩展通信方式:分发列表,类似广播。该方式可以使用1条MQ指令将单一消息发送到多个目标队列,这些多个目标队列放在分发列表中。MQ不仅提供了多点广播的功能,而且还拥有智能消息分发功能,在将1条消息发送到同一系统上的多个用户时,MQ将消息的一个复制版本和该系统上接收者的名单发送到目标MQ系统。目标MQ系统在本地复制这些消息,并将它们发送到名单上的队列,从而尽可能减少网络的传输量。
5.2 发布/订阅方式
在该通信方式中发布者和订阅者要到代理中注册,分别告诉代理将要发布的消息主题和需要订阅的主题。当发布者发布被订主题的消息时,代理会将其发送给所有的订阅者以及向其订阅该主题的相邻代理,由相邻代理再进一步广播,直至到达目的地;若代理找到订阅者要订的主题,则自动地向相邻的代理订阅,从而形成订阅链。发布者和订阅者可以随时向代理注销,退出消息发布网络。
发布/订阅方式使消息的分发突破目的队列地理位置的限制,使得发送者和接收者之间的耦合关系变得更为松散,消息的接收者和发送者都不必关心对方的地址,而只是根据消息的主题甚至内容进行消息的收发。
6 前景展望
凭借WebSphere MQ的超强的底层通信能力,结合IBM的企业总线产品WebSphere Message Broker构造面向服务的架构可以成功地集成来自多个部门和机构跨不同平台的产品和应用系统,以满足业务上灵活多变的需求。
本文从当前许多企业内部的不同应用系统很难互联的问题出发提出IBM的中间件产品WebSphere MQ,较详细阐述了WebSphere MQ的基本概念及对象、工作原理以及通信方式,通过配置2个队列管理器实现双向通信例子加深理解,并对WebSphere MQ的应用前景进行了展望。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。