首页> 中国专利> 在连接的消息传递网络中的交易消息传递支持

在连接的消息传递网络中的交易消息传递支持

摘要

提供了一种用于连接的消息传递网络中的交易消息传递支持的方法和系统。提供第一消息传递网络(110)和第二消息传递网络(120),该第一消息传递网络不支持交易处理,而该第二消息传递网络支持交易处理。在第一消息传递网络与第二消息传递网络之间提供代理服务器应用程序(130)。代理服务器应用程序从第一消息传递网络上的第一应用程序接收消息(310),所述消息包括关于所述消息的交易处理的指令,并且该代理服务器应用程序使用第二消息传递网络所支持的交易处理来将所述消息(310)转发至该第二消息传递网络。

著录项

  • 公开/公告号CN103238137A

    专利类型发明专利

  • 公开/公告日2013-08-07

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201180056233.8

  • 发明设计人 J.里维尔;M.D.皮尔;

    申请日2011-11-17

  • 分类号G06F9/46;G06F9/54;

  • 代理机构北京市柳沈律师事务所;

  • 代理人邸万奎

  • 地址 美国纽约阿芒克

  • 入库时间 2024-02-19 19:37:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-11-05

    未缴年费专利权终止 IPC(主分类):G06F9/46 授权公告日:20170208 终止日期:20181117 申请日:20111117

    专利权的终止

  • 2017-02-08

    授权

    授权

  • 2017-02-01

    著录事项变更 IPC(主分类):G06F9/46 变更前: 变更后: 申请日:20111117

    著录事项变更

  • 2016-05-04

    专利申请权的转移 IPC(主分类):G06F9/46 登记生效日:20160414 变更前: 变更后: 申请日:20111117

    专利申请权、专利权的转移

  • 2013-09-04

    实质审查的生效 IPC(主分类):G06F9/46 申请日:20111117

    实质审查的生效

  • 2013-08-07

    公开

    公开

查看全部

说明书

技术领域

本发明涉及连接的消息传递(messaging)网络的领域。具体地,本发明涉及在连接的消息传递网络中提供交易消息传递支持。

背景技术

多种类型的消息引擎/客户端的网络经常连接在一起。不同类型的消息传递网络可具有不同特征。特征较丰富的第一网络可连接至较不精密的第二网络。这意味着连接至较不精密的网络的应用程序可能无法访问或使用特征较丰富的网络的一些功能。

例如,使用IBMWebSphereMessage Broker(消息代理)V6、MQTT(MQ Telemetry Transport(遥测传输))客户端可连接到MQ网络中(IBM和WebSphere是在全世界许多司法管辖区注册的国际商业机器公司的商标)。MQTT是可用在诸如移动电话的装置中的简单且轻量级(lightweight)的协议,而MQ是需要更强大的计算机来运行的特征丰富的协议。

有时,一个消息传递网络上的客户端意欲访问其它消息传递网络的特征。例如,移动电话上的MQTT应用程序可能希望能够将在同步点下的消息放置(put)到MQ网络,以使得它们可以确保所有该消息的接收者接收到该消息或无接收者接收到该消息。

因此,在本领域中需要解决前述问题。

发明内容

根据本发明的第一方面,提供了一种用于在连接的消息传递网络中的交易消息传递支持的方法,所述连接的消息传递网络具有第一消息传递网络及第二消息传递网络,该第一消息传递网络不支持交易处理,而该第二消息传递网络支持交易处理;该方法包括在第一与第二消息传递网络之间提供代理服务器(proxy)应用程序,其中该代理服务器应用程序:接收来自该第一消息传递网络上的第一应用程序的消息,所述消息包括关于所述消息的交易处理的指令;以及使用该第二消息传递网络所支持的交易处理来将所述消息转发至该第二消息传递网络。

根据另一方面,本发明提供了一种存储在计算机可读介质上并可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,所述软件代码部分用于执行本发明的步骤。

根据本发明的又一方面,提供一种用于在连接的消息传递网络中的交易消息传递支持的系统,包括:不支持交易处理的第一消息传递网络;支持交易处理的第二消息传递网络;在第一与第二消息传递网络之间提供的代理服务器应用程序,其中该代理服务器应用程序包括:用于接收及读取来自该第一消息传递网络上的第一应用程序的消息的信息读取组件,所述消息包括关于所述消息的交易处理的指令;交易处理组件,用于使用该第二消息传递网络所支持的交易处理来将所述消息转发至该第二消息传递网络。

根据再一方面,本发明提供了用于在连接的消息传递网络中的交易消息传递支持的计算机程序产品,所述连接的消息传递网络具有第一消息传递网络及第二消息传递网络,该第一消息传递网络不支持交易处理,而该第二消息传递网络支持交易处理,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质可由处理电路读取、并且存储由所述处理电路执行以用于执行用以执行本发明的步骤的方法的指令。

附图说明

现在将参考如在下列图中所图示的优选实施例,仅通过示例的方式描述本发明:

图1是根据本发明的优选实施例的系统的框图;

图2是根据现有技术的、其中可实施本发明的优选实施例的计算机的框图;

图3是示出根据本发明的第一实施例的消息流的示意图;

图4是根据本发明的优选实施例的方法的流程图;以及

图5是根据本发明的第二实施例的消息流的流程图。

具体实施方式

将可理解的是,为了说明的简化及清楚,在图中示出的部件不需要依比例绘制。例如,为了清楚,这些部件中的一些部件的尺寸可相对于其它部件而放大。此外,在认为适合的情况下,标号在图之间可重复以指示对应或类似的特征。

在下面的详细描述中,提出多个具体细节以便提供对本发明的彻底理解。然而,本领域技术人员将理解,可在无需这些具体细节的情况下实践本发明。在其它实例中,众所周知的方法、过程及组件并未详细描述,以便不会混淆本发明。

描述了一种方法及系统,在该方法及系统中,一个消息传递网络上的代理服务器应用程序代表连接至不支持交易的消息传递网络的应用程序而执行交易消息传递。批量消息的开始和结束显露于代理服务器交易中,以使该发送应用程序具有控制权。

这允许连接至不支持交易的消息传递网络的应用程序能控制哪些操作是哪个交易的部分。由代理服务器应用程序在支持交易的消息传递网络上代表发送应用程序来执行操作。一个消息传递网络上的代理服务器应用程序接收并作用于来自其它消息传递网络上的应用程序的请求,并且向原始发送者提供详述所述请求的成功(或其它)的响应。

代理服务器应用程序代表连接至不支持交易的网络的应用程序而执行交易消息传递,所述代理服务器应用程序给予发送应用程序关于执行哪些操作作为交易工作单元(unit-of-work)的控制权。此外,代理服务器应用程序可如下执行一个或多个其它功能:

●代理服务器应用程序可代表连接的仅点对点消息传递网络上的应用程序而执行发布(publish)/订阅操作;

●代理服务器应用程序可代表仅发布/订阅消息传递网络上的应用程序而执行点对点消息传递;

●代理服务器应用程序可响应于从连接至更不可靠的消息传递网络的应用程序发送的一系列消息片段,汇编(assemble)单个大消息。这些片段应该也能够包括诸如MQ的消息特性的元数据;

●代理服务器应用程序可代表连接至不支持多播的网络的应用程序而发送多播消息。

参考图1,框图示出所描述的系统100的实施例。提供第一消息传递网络110,其不支持交易处理。提供第二消息传递网络120,其支持交易处理。所述两个消息传递网络110、120例如经由消息传递代理而连接。

第一消息传递网络110上的第一应用程序111产生要由第二消息传递网络120上的应用程序121-123经由消息传递引擎125所消耗(consume)的消息。

提供代理服务器应用程序130,其代表第一应用程序111而执行交易消息传递,该代理服务器应用程序130给予该第一应用程序111关于执行哪些操作作为交易工作单元的控制权。代理服务器应用程序130可以是单机(stand-alone)应用程序,或者可以构建为消息传递网络之一中的消息传递引擎或消息传递网络之间的网关。

第一应用程序111包括信息添加组件112,用于向消息添加信息,以指示代理服务器应用程序130如何处理交易及任何其它要由代理服务器应用程序130添加的功能性。第一应用程序111包括交易处理组件113,用于协调要向代理服务器应用程序130指示的交易处理。第一应用程序111还包括功能处理组件114,用于协调要向代理服务器应用程序130指示的额外功能处理。第一应用程序111还包括信息读取组件115,用以解译(interpret)来自代理服务器应用程序130的返回消息。

在一个实施例中,信息添加组件112向要由第一应用程序111发送的消息140添加报头141。报头141可包括主题、目的地队列、及该消息所属于的工作单元的标识符。

在另一个实施例中,信息添加组件112添加消息140的主题形式的信息。

第一应用程序111请求如向代理服务器应用程序130指示的工作单元的确认(commit)。第一应用程序111还包括信息读取组件115,用于从来自代理服务器应用程序130的输入消息读取信息。

代理服务器应用程序130包括订阅机制135,用于订阅第一应用程序111在其上发布具有额外交易处理信息的消息的主题。

代理服务器应用程序130包括信息读取组件131,用于读取来自第一应用程序111的、与消息140相关的所添加的信息。在一个实施例中,其可以读取从第一应用程序111接收的消息140的报头141。在另一个实施例中,其可以读取消息140的主题以获得指令。

代理服务器应用程序130包括交易处理组件132,用于向用于由第二消息传递网络120的第二应用程序121-123访问的、转发至第二消息传递网络120的消息传递引擎125的消息150添加交易处理。

代理服务器应用程序130还可包括其它功能处理组件133,用于响应于从第一应用程序111接收的指令而向消息150添加其它功能性。例如,其它功能性可包括:在发布/订阅消息与点对点消息之间转换、并且反之亦然;将多个小消息编译为一大消息;及将消息转换为多播消息。

基于代理服务器应用程序130对于第一应用程序111所执行的操作的成功/失败,由代理服务器应用程序130生成对第一应用程序111的响应。

来自第二应用程序121-123的响应将在无需代理服务器应用程序130的情况下从第二消息传递网络120流动至第一消息传递网络110。当交易被确认时,这些消息是正常消息,且因此可由第一应用程序111处理。

参考图2,用于实施本发明的方面的示例性系统包括数据处理系统200,其适合用于存储和/或执行程序代码,该数据处理系统200包括通过总线系统203直接地或间接地耦接至存储器部件的至少一个处理器201。存储器部件可包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置、以及高速缓冲存储器,高速缓冲存储器提供至少一些程序代码的暂时性存储,以便减少在执行期间必须从大容量存储装置检索代码的次数。

存储器部件可包括以只读存储器(ROM)204和随机存取存储器(RAM)205为形式的系统存储器202。基本输入/输出系统(BIOS)206可存储在ROM204中。系统软件207可存储在RAM205中,该系统软件207包括操作系统软件208。软件应用程序210还可存储在RAM205中。

系统200还可包括主存储构件211(诸如磁硬盘驱动器)、及二级存储构件212(诸如磁盘驱动器及光盘驱动器)。所述驱动器及其关联的计算机可读介质提供用于系统200的计算机可执行指令、数据结构、程序模块及其它数据的非易失性存储。软件应用程序可存储在主存储构件211、二级存储构件212及系统存储器202上。

计算系统200可使用经由网络适配器216的至一个或多个远程计算机的逻辑连接,在联网的环境中操作。

输入/输出装置213可直接耦接至系统、或通过插入I/O控制器而耦接至系统。使用者可通过诸如键盘、定点装置或其它输入装置(例如,麦克风、操纵杆、游戏柄、碟形卫星天线、扫描仪等)的输入装置,将命令及信息输入到系统200中。输出装置可包括扬声器、打印机等。显示装置214也经由诸如视频适配器215的接口连接至系统总线203。

参考图3,示意图300示出经由代理服务器应用程序130在第一消息传递网络110上的第一应用程序111与第二消息传递网络120上的消息传递引擎125之间的消息流的示例实施例,该第一消息传递网络110为非交易处理网络,而该第二消息传递网络120为交易处理网络。消息传递引擎125包括指定(designation)队列340,一个或多个应用程序121-123可从该指定队列340读取消息。

在交易中,在该交易中完成的每件事成功,或者退出(back out)该交易且不发生作为该交易的部分的任何事。所描述的方法允许连接至不支持交易的第一消息传递网络110的第一应用程序111控制哪些操作是哪个交易的部分。由代理服务器应用程序130代表第一应用程序111在支持交易的第二消息传递网络120上执行操作。

代理服务器应用程序130在代理服务器交易中显露批量消息的开始及结束,以使第一应用程序111具有控制权。

第一应用程序111可发布包含特定报头320的一个或多个消息310,该特定报头320包括代理服务器应用程序130订阅(301)的主题。报头320包括目的地队列及工作单元(UOW)的标识符,其中消息310是所述工作单元的部分。

代理服务器应用程序130接收(302)所发布的消息310并读取报头320。代理服务器应用程序130根据来自报头320的信息,用交易处理转发(303)消息310。代理服务器应用程序130使用第二消息传递网络120用来支持交易的任何机制,来将消息310放置至第二消息传递网络120。代理服务器应用程序130在交易中将消息放置至第二消息传递网络120上的目的地队列340。

可选地,代理服务器应用程序130作为第一应用程序111被认证的使用者而执行所述放置,如同其具有所需的授权(authority)。不同使用者可具有不同授权。如果第一应用程序111提供用户名(及可选地提供一些认证信息),则代理服务器应用程序130可作为该使用者而进行交易。例如,当作为使用者“Bob”而运行的应用程序发送请求至代理服务器应用程序130,以发布到“/happy/chrismas”。元数据可包括密码。当代理服务器应用程序130发布到第二消息传递网络120时,该代理服务器应用程序130认证作为“Bob”(及可选地提供给予其的密码)。然后,成功或失败将取决于Bob的访问,而非另一使用者的访问。

第二应用程序121发送响应消息350,该响应消息350将从第二消息传递网络120流动至第一消息传递网络110,而无须经由代理服务器应用程序130进行。

第一应用程序111发布后续确认消息360,其要求交易被确认或退出。代理服务器应用程序130确定(304)代理服务器应用程序130代表第一应用程序111在交易中处理的消息的成功或失败,并且生成(305)确认响应消息370并将其发送至第一应用程序111。

可选地,代理服务器应用程序130可具有针对交易的确认或退出的时间限制。

参考图4,流程图400示出如由代理服务器应用程序进行的所描述的方法的实施例。

代理服务器应用程序接收(401)来自不支持交易处理的第一消息传递网络上的第一应用程序或产生应用程序的消息。该消息包括来自第一应用程序的关于该消息的交易处理的指令,并且,可选地,该消息包括关于该消息的功能处理的额外指令。额外功能处理可包括在点对点与发布/订阅消息之间转换、将多个消息编译在一起、或转换为多播消息。

代理服务器应用程序读取(402)消息中提供的指令,并且转发(403)具有该消息要被发送到的第二消息传递网络所支持的交易处理的消息。可选地,该消息还被转换(404)以添加其它功能性。

代理服务器应用程序将关于该消息的结果的消息返回(305)至第一应用程序。

提供以连接至MQ网络的MQTT网络为形式的第一消息传递网络之间的示例实施例,该MQ网络支持包括交易处理的较丰富的特征集合。MQ网络能够连接至智能型但具有简单的装置的网络,所述装置用于用仪器装备(instrumenting)管线、轨道及其它遥测应用程序,其陈述(speak)简单得多的MQTT协议。MQTT客户端可希望(例如)将消息放置在同步点、将消息特性添加至消息、和/或经由多播来广播消息。

如果代理服务器应用程序是IBM MQ应用程序,则MQTT客户端将需要将请求路由至代理服务器应用程序。如果代理服务器是消息传递网络在两个网络之间的网关处的部分,则MQTT应用程序可利用截取(intercept)所述消息并对所述消息起作用的代理服务器应用程序,将所述消息直接发送至它们的最终目的地。

参考图5,流程图500示出产生应用程序与代理服务器应用程序之间的示例流程。该产生应用程序位于仅支持发布/订阅消息传递且不支持交易处理的消息传递网络上。

代理服务器应用程序位于支持交易发布/订阅消息传递和点对点消息传递的连接的消息传递网络上。代理服务器应用程序侦听(501)发布于主题字符串:/proxy/commands#上的命令。

产生器应用程序需要给予代理服务器应用程序关于如何处理产生器应用程序所发送的消息的指令。这可通过修改产生器应用程序所使用的主题字符串、或包括作为消息中的报头的信息来实现。

产生器在/proxy/commands/producer1上发布(502)消息:

“开始称为X的新交易,并且,作为该交易的部分,将表达(say)“Hello”的消息(具有消息id=1)放置至队列“destinationqueue””。

代理服务器这样做并且在/proxy/responses/producer1上发布(503)消息,该消息表达“消息id=1放置成功”。

产生器在/proxy/commands/producer1上发布(504)消息:

“开始称为Y的新交易,并且,作为该交易的部分,将表达“Hello”的消息(具有消息id=2)放置至队列“destinationqueue2””。

代理服务器这样做并且在/proxy/responses/producer1上发布(505)消息,该消息表达“消息id=2放置成功”。

产生器在/proxy/commands/producer1上发布(506)消息:

“作为交易X的部分,发布表达“Hello”的消息(具有消息id=3)到主题/happy/Christmas”。

代理服务器这样做并且在/proxy/responses/producer1上发布(507)消息,该消息表达“消息id=3发布成功”。

产生器在/proxy/commands/producer1上发布(508)消息:

“确认交易X”。

代理服务器回复(509)“交易X确认ok”。

产生器在/proxy/commands/producer1上发布(510)消息:

“作为交易Y的部分,发布表达“Hello”的消息(具有消息id=4)到主题/happy/christmas/secret”。

代理服务器回复(511)“消息4的放置失败且有错误:

SECURITY_ERROR_PUBLISH_NOT_ALLOWED”。

产生器在/proxy/commands/producer1上发布(512)消息:

“退出交易Y”。

代理服务器回复(513)交易Y已被取消。

因此,虽然产生器意欲发送四个消息,但是,当所述消息之一失败时,产生器可决定退出整个交易,因而仅两个消息(具有id为1和3)被实际发送。

当与较精密的第二消息传递网络通信时,也可由代理服务器应用程序代表第一消息传递系统而添加额外功能性。

代理服务器应用程序可代表连接的仅点对点消息传递网络上的应用程序而执行发布/订阅操作,如下所述:

●代理服务器应用程序侦听队列“Q1”上的命令;

●产生器应用程序将消息放置至“Q1”,其中“Q1”具有包括在报头中的主题字符串;

●代理服务器应用程序经由第二消息传递网络将消息发布到报头中所列出的主题;

●代理服务器应用程序将回复消息发送至产生器应用程序所侦听的队列,报告该发布是否成功。

代理服务器应用程序可代表仅发布/订阅消息传递网络上的应用程序而执行点对点消息传递,如下所述:

●代理服务器应用程序侦听主题:/PROXY/COMMANDS/#上的命令;

●产生器应用程序发布到主题:/PROXY/COMMANDS#,并且,消息报头中包括第二消息传递网络上的放置消息的队列的名称、以及执行放置的指令;

●代理服务器应用程序将该消息放置至相关队列;

●代理服务器应用程序将回复消息发布到产生器应用程序所侦听的主题,报告该放置是否成功。

代理服务器应用程序可响应于从连接至更不可靠的消息传递网络的应用程序发送的一系列消息片段,汇编单个大消息。这些片段应该也能够包括诸如消息特性的元数据。

●代理服务器应用程序侦听队列Q1上的命令;

●产生器应用程序放置消息至代理服务器上的Q1,并且,在消息报头中包括序号及标志,以表达这是序列中的第一个消息;

●接着,代理服务器应用程序将每个后续消息以顺序地增加的序号而放置至代理服务器应用程序,直至最后一个消息被发送为止,该最后一个消息也在报头中包括标志以表达该消息是最后一个消息;

●代理服务器应用程序等待,直至已经接收了最后一个消息并检查无序号丢失为止,然后,代理服务器应用程序将所有消息的主体和元数据汇编为一个大消息,然后代理服务器应用程序将该大消息发送至该第二消息传递网络;

●代理服务器应用程序将回复消息发送至产生器应用程序所侦听的队列,报告该放置是否成功。

代理服务器应用程序可代表连接至不支持多播的网络的应用程序而发送多播消息。

●代理服务器应用程序侦听队列Q1上的命令;

●产生器应用程序将消息放置至代理服务器应用程序上的Q1,并且,消息报头中包括标志,以向代理服务器应用程序指示该消息为多播消息、以及多播所需的任何额外信息;

●然后,代理服务器应用程序经由第二消息传递网络发布该消息作为多播消息;

●代理服务器应用程序发送回复消息至产生器应用程序所侦听的队列,报告该放置是否成功。

简单的消息传递网络可连接至更复杂、多特征的网络,并且,连接至简单网络的客户端可发送及接收这样的消息,即,该消息像常见的简单消息、但具有嵌入到所述消息中的将要由代理服务器应用程序解译、且要由代理服务器应用程序转发至更多特征的网络的指令。

来自客户端的包括控制指令的消息在到达可解码或解译所述指令、并使用代表客户端的先进特征的代理服务器之前,可流经多个不理解所述指令的消息传递引擎。

可提供交易消息传递支持系统,作为针对网络上的客户端的服务。

本发明可采取完全硬件实施例、完全软件实施例、或包括硬件及软件部件二者的实施例的形式。在优选实施例中,本发明在软件中实施,该软件包括但不限于固件、常驻软件、微代码等。

本发明可采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,该计算机可用或计算机可读介质提供程序代码,用以由计算机或任何指令执行系统、或结合计算机或任何指令执行系统使用。为了该描述的目的,计算机可用或计算机可读介质可以是可包含、存储、传递、传播或传输程序的任何设备,以用于由指令执行系统、设备或装置使用,或结合指令执行系统、设备或装置使用。

介质可以是电、磁、光、电磁、红外或半导体系统(或设备或装置)或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘及光盘。光盘的当前示例包括光盘只读存储器(CD-ROM)、光盘读/写(CD-R/W)及DVD。

在不偏离本发明的范围的情况下,可对前述进行改进及修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号