CN101926138B - 用于在消息网络中进行消息传递的方法和系统 - Google Patents

用于在消息网络中进行消息传递的方法和系统 Download PDF

Info

Publication number
CN101926138B
CN101926138B CN200980103028.5A CN200980103028A CN101926138B CN 101926138 B CN101926138 B CN 101926138B CN 200980103028 A CN200980103028 A CN 200980103028A CN 101926138 B CN101926138 B CN 101926138B
Authority
CN
China
Prior art keywords
message
queue
reply
management system
message management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200980103028.5A
Other languages
English (en)
Other versions
CN101926138A (zh
Inventor
A·D·班克斯
G·D·贝尔达尔
S·J·霍伯森
I·C·万斯通
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Schnapp Chart Co., LTD
Original Assignee
Schnapp Chart Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Schnapp Chart Co Ltd filed Critical Schnapp Chart Co Ltd
Publication of CN101926138A publication Critical patent/CN101926138A/zh
Application granted granted Critical
Publication of CN101926138B publication Critical patent/CN101926138B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/234Monitoring or handling of messages for tracking messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提供了一种用于在消息网络中进行消息传递的方法和系统。该系统提供了针对消息的复制队列(451),该消息在被消费之前可由应用进行标识。该复制队列(451)可以在多个消息管理系统(411-413)上进行定义,其中向多个复制队列(451)中的每个队列发送消息,以便该消息可以经由多个消息管理系统(411-413)中任意一个进行访问。该方法包括创建包括唯一标识符的消息,以及将该消息置于多个复制队列(451)中的每个队列,其中所述消息在被读取之前可以通过唯一标识符信息进行标识。

Description

用于在消息网络中进行消息传递的方法和系统
技术领域
本发明涉及在消息网络中进行消息传递的领域。具体地,本发明涉及在其被消费之前可以由消费者唯一标识的消息的消息传递。
背景技术
在其被消费之前可以被唯一标识的消息的一个示例是请求/回复系统中的回复消息。在消息网络中,请求器发送请求并接收回复,以及响应器接收请求并发送回复。
可以通过提供请求器连接到其的多个消息管理系统和使用将请求器连接路由至可用的消息管理系统的工作负载平衡机构,在消息网络的前端取得高可用性级别。后端也可以通过提供响应器可以连接到其的多个消息管理系统和使用在前端消息管理系统上的工作负载平衡机构变得可用性更高,该工作负载平衡机构将请求消息路由至可用的后端消息管理系统。即使前端或后端消息管理器系统是不可用的,仍然可以继续对请求进行处理。
总的难题,是在存在亲合性(affinity)时与回复路由相关联的可用性问题。回复通常通过后端消息管理器系统将其路由向特定前端消息管理器系统并且是未经工作负载平衡的。所使用的前端消息管理器系统正是发送对应的请求消息所通过的那个前端消息管理器系统。这是因为请求器通常发送请求并且保留与相同消息管理器系统的连接,直到该请求器接收到对应的回复。在回复与前端消息管理器系统之间产生了亲缘性。这在前端产生了针对回复可用性的问题,这是因为请求器工作(发送请求、接收回复)的完成依赖于从其发送请求的消息管理器系统的连续可用性。如果在请求被路由至后端之后并且在回复被路由至前端之前消息管理器系统发生故障,那么该回复被保存在后端,直到前端消息管理器系统变得可用为止。
如果请求器在其发送请求之后但在接收到回复之前从前端消息管理器系统断开或被断开,那么会出现另一问题。请求器连接是经工作负载平衡的。所以当请求器(出于接收回复的目的)重新连接时,该请求器的连接可能被工作负载平衡至与其原始连接到的不同的前端消息管理器系统。这产生了如下情况,其中回复对于该请求器是不可用的,直到该请求器重新连接到正确的前端消息管理器系统。
对这种问题的一个已知解决方案是依赖请求器的状态对请求器使用不同的连接逻辑。在发送请求之前,连接是经工作负载平衡的,并且在发送请求之后但在接收回复之前,该连接是不经工作负载平衡的,而是使请求器连接到该请求器具有亲缘性的消息管理器系统。
发明内容
根据本发明的第一方面,提供了一种用于在消息网络中进行消息传递的方法,包括:创建包含唯一标识符的消息;以及向具有在其被消费之前可由唯一标识符标识的消息的多个复制队列中的每个队列发送该消息。
根据本发明的第二方面,提供了一种用于在消息网络中进行消息传递的系统,包括:消息网络,其包含在一个或多个处理器上提供的多个消息管理系统;针对消息的复制队列,所述消息在其被读取之前可以由应用标识,该复制队列可以在多个消息管理系统上进行定义;其中向经由任一所述多个消息管理系统可访问的多个复制队列中的每个队列发送消息。
根据本发明的第三方面,提供了一种存储在计算机可读存储介质上的用于在消息网络中进行消息传递的计算机程序产品,包括用于执行如下步骤的计算机可读程序代码装置:创建包括唯一标识符的消息;以及向具有在其被消费之前可由唯一标识符标识的回复消息的多个复制队列中的每个队列发送该消息。
该解决方案有两个关键部分:
1)回复被复制,以便向所有前端消息管理系统发送回复,而不是向一个特定前端消息管理器系统发送一个回复。
2)请求器可以连接至任意前端消息管理器系统以接收回复消息。在其他前端消息管理系统上的回复消息会被自动删除。
本发明的目的在于通过消除请求器从与其发送请求的相同的消息管理器系统接收回复的要求,从而提高了针对请求器的回复可用性。本发明还消除了请求器中不同连接逻辑的要求,从而允许将请求器工作负载平衡至可用的消息管理系统,而不需考虑请求器的状态,并且允许在任意前端消息管理器系统接收回复。
附图说明
在本说明书的总结部分特别指出并且明确要求了视为本发明的主题。当阅读附图参考如下详细描述,可以最好地理解本发明(包括组织和操作方法二者)以及本发明的目的、特征和优势,其中:
图1是现有技术中已知的消息系统的示意图;
图2是其中可以实现本发明的计算机系统的框图;
图3A至图3C是根据本发明的多个方面的处理的流程图;
图4A是根据本发明的系统的框图;以及
图4B是根据本发明的示出消息流的系统的实施方式的框图。
应当理解,为了图示的简单明了,图中所示元件没必要按比例绘制。例如,为了清楚起见,某些元件的尺寸可以相对于其他元件进行扩大。此外,在认为合适的地方,参考标号可以在多个附图中重复使用以指示对应或类似的特征。
具体实施方式
在如下详细描述中,阐述了许多特定细节以便提供对本发明的彻底理解。然而,本技术领域的技术人员应当理解没有这些特定细节也可以实现实践本发明。为了不模糊本发明,在其他实例中,已知的方法、过程和部件没有进行详细描述。
参考图1,示出了现有技术中已知的消息网络系统100。在消息网络系统100中,可以将请求器101-103(发送请求、接收回复)和响应器104-406(接收请求、发送回复)连接至不同的消息管理系统111-113、121-123。消息网络系统100对于请求器101-103连接使用前端消息管理器系统111-113,以及对于响应器104-106连接使用后端消息管理系统121-123。消息管理系统111-113、121-123可以例如是队列管理器。
可以通过提供请求器101-103可以连接到其的若干前端消息管理系统111-113和使用将请求器连接路由至可用的消息管理系统111-113的工作负载平衡机构131(例如,IP负载平衡器或消息管理器系统特征),在消息网络前端取得高可用性级别。例如,图1中示出了从请求器102到消息管理器系统112的信道132(由工作负载平衡选定),通过该信道进行消息流动。
后端可以通过提供响应器104-106可以连接到其的若干消息管理系统121-123变得可用性更高。在前端消息管理系统111-113上的工作负载平衡机构133将请求路由至可用的后端消息管理器系统121-123。例如,图1示出了路由134至后端123的请求和路由135至前端112的回复。
即便一个或多个前端或后端消息管理器系统是不可用的,系统100也可以通过从请求器101经由前端111-113和后端121-123向响应器123发送请求来继续对请求进行处理。
参考图2,其中可以实现消息管理器系统的一个示例性系统包括:适于存储和/或执行程序代码的数据处理系统200,该数据处理系统200包括直接耦合或通过总线系统203间接耦合至存储器元件的至少一个处理器201。存储器元件可以包括:在程序代码的实际执行期间所采用的本地存储器、大容量存储设备和高速缓存存储器,该高速缓存存储器提供至少一些程序代码的临时存储,以便在执行期间减少必须从大容量存储设备检索代码的次数。
存储器元件可以包括以只读存储器(ROM)204和随机访问存储器(RAM)205形式出现的系统存储器202。可以将基本输入输出系统(BIOS)206存储在ROM204中。可以将包括操作系统软件208的系统软件207存储在RAM205中。还可以将软件应用210存储在RAM205中。
系统200还可以包括主存储装置211(诸如,磁硬盘驱动器)和辅助存储装置212(诸如,磁盘驱动器和光盘驱动器)。驱动器及其相关联的计算机可读介质提供计算机可执行指令、数据结构、程序模块和针对系统200的其他数据的非易失性存储。可以将软件应用存储在主存储装置211和辅助存储装置212以及系统存储器202上。
计算系统200可以使用经由网络适配器216到一个或多个远程计算机逻辑连接在联网环境中进行操作。
可以将输入/输出设备213直接或者通过中介I/O控制器耦合至系统。用户可以通过输入设备(诸如键盘、指向设备或其他输入设备(例如,麦克风、游戏杆、游戏垫、卫星碟、扫描仪等))将命令或信息键入系统200。输出设备可以包括扬声器、打印机等。还可以将显示设备214经由诸如视频适配器215之类的接口连接至系统总线203。
消息管理器系统包括定义注册表的程序、消息管理器系统定义和本地默认队列定义。
在所描述的方法和系统中,提供了用于保存消息的一种特殊类型的队列。此队列被称为复制队列(RQ)。RQ被设计用于在消费者接收到消息之前可以由那些消费者唯一标识的消息(例如,具有唯一标识符的回复消息)。
RQ可以在多个消息管理系统上进行定义,这通过在每个消息管理器系统上使用手动定义,或者使用一个手动定义和用于在其他消息管理系统上复制该定义的自动定义机构来实现。使用自动定义机构能够更好地支持RQ的动态创建(例如,响应应用活动定义的RQ)。消息网络中的消息管理系统能自动地意识到消息网络中的RQ。
当向RQ发送消息(例如,回复消息)时,该消息必须具有唯一标识符。该唯一标识符可以由应用或由消息管理器系统进行指定。或者是消息管理器系统或者是应用复制该消息,使得消息网络中容纳(host)该RQ的每个消息管理器系统都接收了一个副本。复制的消息可以使用任意消息技术进行发送。
容纳了该RQ的每个消息管理器系统均接收了该复制消息的一个副本。应用可以连接至容纳了该RQ的任意消息管理系统以接收它们的消息(由唯一标识符标识)。
一旦应用消费了一个复制消息,该应用便完成了它的工作,但是容纳了该RQ的其他消息管理系统仍保存了该消息的副本。这些剩余的消息使用系统资源,因此应当删除。这种删除自动执行是有利的。
当消息被应用消费时,消息管理器系统向所有其他容纳了该RQ的消息管理系统发送通知消息。该通知消息可以使用任意消息技术进行发送。
此通知消息包含回复被发送至的RQ的名称和别消费的消息的唯一标识符二者。向消息删除部件传递此通知消息。此组件可以是外部程序或者是消息系统的一部分。
当消息删除组件接收到通知消息时,该消息删除组件从指定RQ中删除唯一指定的消息。在应用已经接收到其消息之后,在其他RQ上的回复消息还可以存在一段时间。因为这些消息的存在不影响其他应用,这些消息报留在RQ上是可接受的。这是因为应用使用唯一标识符来消费消息,并且这些消息的标识符与其他应用所使用的标识符不匹配。
消息删除组件有可能在对应的复制消息到达该RQ之前接收到通知消息,因此对应的复制消息不可用的通知消息被保留。当对应的复制消息到达后,该复制消息和保留的通知消息都被删除。
通知消息或复制消息没有到达特定的消息管理器系统是可能的。例如,消息管理系统之间的通信链路故障或消息过期。通知具有与复制消息相同的过期时限。
总之,进行如下过程:
●当向RQ发送消息时,发送器本地的消息管理系统将该消息复制到RQ的每个实例。
●当应用接收到复制消息时,保存在RQ上的其他复制品被自动删除。
如下示例解释了RQ是如何能够用于发送回复的。
参考图3A,流程图310示出了由请求器执行的处理步骤。请求器连接311至消息网络,并且经工作负载平衡至特定的前端消息管理器系统。请求器创建312以RQ为回复目的地的请求,并且存储该请求的标识符。请求器发送313该请求。请求器继而可以断开连接或者连接可能发生故障314。
消息网络工作负载平衡机构执行并且选择该请求被发送向的后端消息管理器系统。
参考图3B,流程图320示出了由响应器执行的处理步骤,该响应器连接至请求被发送到的后端消息管理器系统。响应器消费321请求。响应器创建322回复并且将来自请求的标识符复制到回复。响应器向该请求中指定的目的地发送323该回复。消息管理器系统意识到指定的目的地为RQ,并且向所有容纳了该RQ的消息管理系统发送回复。
参考图3C,流程图330示出了当请求器重新连接时由其执行的处理步骤。请求器重新连接331并且经工作负载平衡至前端消息管理系统中的任意一个。请求器指定所存储的来自请求的标识符,以便有选择地接收332回复并且断开连接333。当消息管理器系统向请求器传递回复时,该消息管理器系统创建334包含RQ名称和已被消费的回复的标识符二者的通知消息。消息管理器系统向所指定的RQ的其他宿主发送335该通知消息。删除通知组件删除指定的回复。
图4A示出了具有消息网络410的消息系统400的系统图,该消息网络410具有前端消息管理系统411-413和后端消息管理系统414-416。请求器连接421-423被负载平衡440至前端消息管理系统411-413之一。第二负载平衡机构441负载平衡从前端消息管理系统411-413到后端消息管理系统414-416的请求。响应器431-433被连接至后端消息管理系统414-416。
后端消息管理系统414-416均容纳请求目的地450,并且前端消息管理系统411-413均容纳RQ451。
在一个实施方式中,可以将RQ实现为特殊类型的群集队列。示例实现在WebSphereMQ群集(WebSphereMQ是国际商业机器公司的商标)的上下文中进行了描述。在WebSphereMQ群集中,消息网络可以以队列管理器的形式提供,可以使该群集中的队列管理器自动地意识到该群集中的RQ。当消息消费者创建回复消息时,该消息消费者通过将MQMD.MsgId拷贝至MQMD.CorrelId将来自请求消息的信息拷贝至回复消息中,从而允许消息产生者将请求和回复进行关联。最初放置该请求的消息消费者保持连接或者重新连接到前端队列管理器中的任意一个,并且接收保存在该前端队列管理器上的RQ上的回复消息。应用使用MQMD.CorrelId的相关性信息,以便接收其感兴趣的特定回复消息。
参考图4B,在消息管理系统的WebSphereMQ群集410(MYCLUS)的上下文中以队列管理器411-416的形式示出了图4A的消息系统400。示出了三个后端队列管理器414-416(QM4、QM5和QM6)和三个前端队列管理器411-413(QM1、QM2和QM3)。消息产生者客户端应用421-423经由负载共享机构440连接至前端队列管理器411-413之一,将请求消息置于容纳在所有后端队列管理器414-416上的群集队列450(REQ.Q),接着断开连接。连接至后端队列管理器414-416的消息消费者应用431-433从群集队列450(REQ.Q)获取请求消息,并且将回复消息置于RQ队列451(REP.Q)。每个前端队列管理器411-413均具有RQ队列451(REP.Q)。稍后,该回复可以从任意后端队列管理器411-413获取。
请求队列创建如下:
!QM4DEFQL(REQ.Q)CLUSTER(MYCLUS)
!QM5DEFQL(REQ.Q)CLUSTER(MYCLUS)
!QM6DEFQL(REQ.Q)CLUSTER(MYCLUS)
回复队列创建如下:
!QM1DEFRQ(REP.Q)CLUSTER(MYCLUS)
!QM2DEFRQ(REP.Q)CLUSTER(MYCLUS)
!QM3DEFRQ(REP.Q)CLUSTER(MYCLUS)
注意,一旦定义了RQ,该RQ所定义在的队列管理器便自动订阅了关于该队列的信息(即,通知消息)。
下述步骤(图4B中参考的)解释了针对单个请求和回复的行为:
1)消息产生者客户端应用连接并且被工作负载平衡(例如,使用IP负载平衡器或WebSphereMQ客户端信道定义表)至特定的前端队列管理器。在该情况下,该消息产生者客户端应用被工作负载平衡至QM3。
2)消息产生者客户端应用创建请求消息,在MQMD.ReplyToQ中填充REP.Q的名称,并且存储MQMD.MsgId。
3)消息产生者客户端应用将该请求消息置于REQ.Q。由于REQ.Q是群集队列,因此QM3可以意识到该REQ.Q,并且可以将消息路由至该队列。
4)执行群集工作负载平衡算法,并且在该情况下选择向QM6发送请求消息。该消息通过群集信道向QM6发送并且被置于REQ.Q上。
5)消息产生者客户端应用断开连接(或连接发生故障)。注意,实际上这可以在步骤3至步骤10之间的任意点发生。
6)QM6上的消息消费者应用获取并处理(例如,数据库更新)该请求消息。
7)QM6上的消息消费者应用创建回复消息并且将来自请求消息中的MQMD.MsgId拷贝至回复消息中的MQMD.CorrelId。
8)QM6上的消息消费者应用将该回复消息置于请求消息(REP.Q)的MQMD.ReplyToQ中指定的目的地。
9)QM6意识到REP.Q是RQ,因此忽略指定的任何MQOD.ObjectQMgrName并且向所有容纳了REP.Q的队列管理器公布该回复消息,以便该回复消息的副本现在存在于QM1、QM2和QM3上的REP.Q上。注意,忽略ObjectQMgrName将允许现有应用利用RQ。
10)消息产生者客户端应用连接并且被工作负载平衡(例如,使用IP负载平衡器或WebSphereMQ客户端信道定义表)至特定前端队列管理器。在这种情况下,该消息产生者客户端应用被工作负载平衡至QM1。
11)消息产生者客户端应用指定回复消息MQMD.CorrelId中存储的消息ID(来自请求消息),获取该回复消息,并断开连接。
12)QM1注意到回复消息已经从RQ(REP.Q)移除,并且自动地创建包含该RQ(REP.Q)的名称和刚被移除的回复消息的CorrelId(即,其他RQ上的其他回复消息中的相同CorrelId)的通知消息。QM1继而向REQ.Q的其他宿主公布该通知,这些宿主已经订阅了这些通知。13)QM2和QM3获取该公布,并且使用通知消息中的信息以从指定RQ(REQ.Q)中删除指定消息。注意,QM1不接收该通知,因为本地传递是无效的。
因为对于所有应用连接,存在其中在委托期间连接发生故障的窗口,因此应用不能确定该委托是否完成。下述情境描述了两种问题委托:
1)应用发布了一个委托调用,该委托失败,该连接发生故障,并且应用从该委托调用接收到“连接断开”返回代码。该回复仍是可用的。
2)应用发布了一个委托调用,该委托成功地完成,该连接发生故障,并且应用从该委托调用接收到“连接断开”返回代码。该回复不再可用。
情境1)和2)中的问题在于应用不知道该委托实际上是否完成。所有委托应用都存在相同问题。解决方案是如果不再能从消息管理器系统中用消息,应用(独立消息的单个消费者)可以假设委托已起作用。存在两种相当简单的解决方案:
a)如果应用响应于委托调用接收了“连接断开”,那么应用必须重新连接至其发布委托到的相同消息管理器系统,并检查回复。如果回复不存在,那么可以假设委托成功了并且应用可以继续处理。如果回复存在,那么将必须再次消费并再次委托。虽然这带来了亲缘性,但是当使用RQ系统时,大大减少了“亲缘性窗口”。
b)忽略错误并继续委托成功了的假设。如果该委托真的成功了,从RQ移除回复并且不需要再采取更多的动作。如果委托失败了,那么回复会保存在RQ上。由于所有消费回复的应用正在选择可唯一标识的回复,所以没有其他应用可以消费剩余的回复,因此现在的问题是如何最好地清理剩余回复。可以使用过期时限或手动清理RQ。
这里描述的方法和系统提高了请求/回复情境中的可用性。该解决方案在对消息往返时间具有最小影响的情况下提供了可用性改进。如果存在非常多的RQ宿主,那么时间增量可以与复制回复的发送相关联,这是因为所有回复有可能在一个工作单元进行发送。值得注意的是,至少对于可用性要求而言,不见得要求大量的RQ。同样,过剩回复的删除可以在与消息往返时间相关联的任何工作单元外完成。
对解决方案进行设计,以便包含n个RQ的网络可以在高达n-1个容纳了RQ的消息管理系统发生故障的情况下传递回复。通常,一个RQ可能期望两个RQ或三个RQ来提供足够的冗余。
在某种(故障)情境下,这种模式会产生没有及时删除的重复回复。这种解决方案假设回复是选择性处理的(例如,通过唯一标识符)。一旦回复被消费,便清除应用持有的选择标准,从而应用不试图从其他RQ中读取任何现有的重复回复。如果不需要选择性回复,那么任意线程或应用可以对回复进行处理,因此否定全部RQ的需求(简单目的地就足够了)。
本发明可以采取如下形式:完全硬件的实施方式、完全软件的实施方式、或者硬件元件和软件元件都包含的实施方式。在一个实施方式中,本发明以软件实现,该软件包括但不限于固件、驻存软件、微代码等。
本发明可以采取从计算机可用介质或计算机可读介质访问的计算机程序产品的形式,该介质提供了由计算机或任何指令执行系统使用或与其连接的程序代码。为了描述的目的,计算机可用介质或计算机可读介质可以是可以包含、存储、通信、传播或传送由指令执行系统、装置或设备使用或与其连接的程序的任何装置。
介质可以是电的、磁的、光的、电磁的、红外的或半导体系统(或装置或设备)或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移动计算机软盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括只读光盘存储器(CD-ROM)、读/写光盘(CD-R/W)和DVD。
可以对前文描述进行改进和修改而不脱离本发明的范围。

Claims (36)

1.一种用于在消息网络中进行消息传递的方法,包括:
响应于接收到来自请求器的请求消息,创建包括所述请求消息的标识符的回复消息;以及
向多个复制队列中的每一队列发送所述回复消息,其中所述回复消息在被所述请求器消费之前可以由所述请求器使用所述请求消息的标识符在所述多个复制队列中的任一个上进行识别。
2.根据权利要求1所述的方法,其中所述向多个复制队列中的每一队列发送所述回复消息,包括,向其上定义了所述复制队列的每个消息管理系统发送所述回复消息。
3.根据权利要求1所述的方法,其中所述回复消息与请求/回复消息架构相关联。
4.根据权利要求1至3中任一所述的方法,其中所述方法进一步包括:发送所述回复消息的消息管理系统忽略了所述请求消息中指定的消息管理系统。
5.根据权利要求1至3中任一所述的方法,包括:
请求器使用所述请求消息的标识符从任一所述复制队列中检索所述消息。
6.根据权利要求1至3中任一所述的方法,包括:
向请求器传递所述回复消息的消息管理系统创建通知消息以删除所述回复消息,所述通知消息包括所述复制队列的名称和所述请求消息的标识符;以及
所述向请求器传递所述回复消息的消息管理系统向其上定义了所述复制队列的其他消息管理系统公布所述通知消息。
7.根据权利要求6所述的方法,其中所述向其上定义了所述复制队列的消息管理系统公布所述通知消息,包括,响应于已经从所述复制队列之一移除复制消息而公布所述通知消息。
8.一种用于在消息网络中进行消息传递的系统,包括:
消息网络(400),包括在一个或多个处理器上提供的多个消息管理系统(411-415);
针对回复消息的复制队列(451),其中,所述回复消息可操作为由应用使用与该回复消息关联的请求消息的标识符进行识别,所述复制队列(451)可以在多个消息管理系统(411-413)上进行定义;
其中向多个复制队列(451)中的每个队列发送回复消息,以便所述回复消息可以使用所述多个消息管理系统(411-415)中的任意一个进行访问。
9.根据权利要求8所述的系统,其中所述消息网络(400)包括多个前端消息管理系统(411-413)和多个后端消息管理系统(414-416),并且其中所述系统包括:
请求器(421-423),其可连接至所述前端消息管理系统(411-413)之一;以及
响应器(431-433),其可连接至所述后端消息管理系统(414-416)之一。
10.根据权利要求9所述的系统,包括:
所述请求器(421-423)与所述前端消息管理系统(411-413)之间的第一负载平衡机构(440);以及
所述前端消息管理系统(411-413)与所述后端消息管理系统(414-416)之间的第二负载平衡机构(441)。
11.根据权利要求8至10中任一所述的系统,其中针对回复消息的复制队列(451)可以在多个所述前端消息管理系统(411-413)上进行定义,用于由来自所述多个前端消息管理系统(411-413)中的任意一个的请求器(421-423)进行消费。
12.根据权利要求11所述的系统,包括:
请求器(421-423),用于使用所述标识符消费任一所述复制队列(451)中的回复消息。
13.根据权利要求8所述的系统,其中所述回复消息与请求/回复消息架构相关联。
14.根据权利要求8至10中任一所述的系统,其中所述复制队列(451)可以在多个消息管理系统(411-413)中的每个系统上手动定义。
15.根据权利要求8至10中任一所述的系统,其中所述复制队列(451)可以在一个消息管理器系统(411-413)上手动定义,并且可以在多个消息管理系统(411-413)中的其余系统上自动定义,以复制所述队列(451)。
16.根据权利要求8至10中任一所述的系统,包括:
用于接收包括消息标识符的请求的装置;
用于创建包括与所述请求的消息标识符相关联的相关性信息的回复的装置;以及
用于将所述回复置于多个复制队列(451)中的每个队列的装置,其中所述回复在被消费之前可由所述消息标识符信息来标识。
17.根据权利要求16所述的系统,其中所述请求包括回复目的地,所述回复目的地包括可以在多个消息管理系统(411-413)上定义的复制队列(451)。
18.根据权利要求16所述的系统,其中用于向多个复制队列中的每个队列发送所述回复的装置包括:用于向其上可以定义所述复制队列(451)的每个消息管理系统(411-413)发送所述回复的装置。
19.根据权利要求16所述的系统,包括用于忽略在所述请求中指定的消息管理器系统(411-413)的装置。
20.根据权利要求16所述的系统,包括:
消息删除组件,其包括:
用于创建通知消息以删除所述回复的装置,所述通知消息包括所述复制队列(451)的名称和所述消息标识符;以及
用于向可操作为容纳所述复制队列(451)的消息管理系统(411-413)发送所述通知消息的装置。
21.根据权利要求8至10中任一所述的系统,其中所述多个消息管理系统(411-413)包括一群队列管理器。
22.一种用于在消息网络中进行消息传递的装置,其可以与包括在一个或多个处理器上提供的多个消息管理系统(411-415)的消息网络(400)一起操作,所述装置包括:
用于响应于接收到来自请求器的请求消息,创建包括所述请求消息的标识符的回复消息的装置;以及
用于向多个复制队列(451)中的每个队列发送(324)所述回复消息的装置,其中所述回复消息在被所述请求器消费之前可由所述请求器使用所述请求消息的标识符在所述多个复制队列中的任一个上进行识别。
23.根据权利要求22所述的装置,其中复制队列(451)可操作为可以在多个消息管理系统(411-413)上进行定义;
其中向多个复制队列(451)中的每个队列发送回复消息,并且所述回复消息可以使用所述多个消息管理系统(411-415)中的任意一个进行访问。
24.根据权利要求22所述的装置,其中所述消息网络(400)包括多个前端消息管理系统(411-413)和多个后端消息管理系统(414-416),并且其中所述装置包括:
请求器(421-423),其可连接至所述前端消息管理系统(411-413)之一;以及
响应器(431-433),其可连接至所述后端消息管理系统(414-416)之一。
25.根据权利要求24所述的装置,包括:
所述请求器(421-423)与所述前端消息管理系统(411-413)之间的第一负载平衡机构(440);以及
所述前端消息管理系统(411-413)与所述后端消息管理系统(414-416)之间的第二负载平衡机构(441)。
26.根据权利要求22至25中任一所述的装置,其中针对回复消息的复制队列(451)可以在多个所述前端消息管理系统(411-413)上进行定义,用于由来自所述多个前端消息管理系统(411-413)中的任意一个的请求器(421-423)进行消费。
27.根据权利要求26所述的装置,包括:
请求器(421-423),用于使用所述标识符消费来自任一所述复制队列(451)中的回复。
28.根据权利要求22所述的装置,其中所述回复消息与请求/回复消息架构相关联。
29.根据权利要求22至25中任一所述的装置,其中所述复制队列(451)可以在多个消息管理系统(411-413)中的每个系统上手动定义。
30.根据权利要求22至25中任一所述的装置,其中所述复制队列(451)可以在一个消息管理器系统(411-413)上手动定义,并且可以在多个消息管理系统(411-413)中的其余系统上自动定义,以复制所述队列(451)。
31.根据权利要求22至25中任一所述的装置,包括:
用于接收包括消息标识符的请求的装置;
用于创建包括与所述请求的消息标识符相关联的相关性信息的回复的装置;以及
用于将所述回复置于多个复制队列(451)中的每个队列的装置,其中所述回复在被消费之前可由所述消息标识符信息来标识。
32.根据权利要求31所述的装置,其中所述请求包括回复目的地,所述回复目的地包括在多个消息管理系统(411-413)上可定义的复制队列(451)。
33.根据权利要求31所述的装置,其中用于向多个复制队列中的每个队列发送所述回复的装置包括用于向其上可以定义所述复制队列(451)的每个消息管理系统(411-413)发送所述回复的装置。
34.根据权利要求31所述的装置,包括用于忽略在所述请求中指定的消息管理器系统(411-413)的装置。
35.根据权利要求31所述的装置,包括:
消息删除组件,其包括:
用于创建通知消息以删除所述回复的装置,所述通知消息包括所述复制队列(451)的名称和所述消息标识符;以及
用于向可操作为容纳所述复制队列(451)的消息管理系统(411-413)发送所述通知消息的装置。
36.根据权利要求22至25中任一所述的装置,其中所述多个消息管理系统(411-413)包括一群队列管理器。
CN200980103028.5A 2008-01-25 2009-01-19 用于在消息网络中进行消息传递的方法和系统 Expired - Fee Related CN101926138B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP08150654.5 2008-01-25
EP08150654 2008-01-25
PCT/EP2009/050523 WO2009092676A1 (en) 2008-01-25 2009-01-19 Method and system for message delivery in messaging networks

Publications (2)

Publication Number Publication Date
CN101926138A CN101926138A (zh) 2010-12-22
CN101926138B true CN101926138B (zh) 2016-08-03

Family

ID=40565259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980103028.5A Expired - Fee Related CN101926138B (zh) 2008-01-25 2009-01-19 用于在消息网络中进行消息传递的方法和系统

Country Status (6)

Country Link
US (5) US8595301B2 (zh)
EP (1) EP2248311B1 (zh)
JP (1) JP2011511976A (zh)
KR (1) KR20100103594A (zh)
CN (1) CN101926138B (zh)
WO (1) WO2009092676A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9647972B2 (en) 2008-01-25 2017-05-09 Snap Inc. Message delivery in messaging networks

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979497B2 (en) * 2008-01-25 2011-07-12 International Business Machines Corporation Message delivery using a plurality of queue managers
US9104486B2 (en) * 2011-11-08 2015-08-11 Mckesson Financial Holdings Apparatuses, systems, and methods for distributed workload serialization
CN102868594B (zh) * 2012-09-12 2015-05-27 浪潮(北京)电子信息产业有限公司 一种消息处理方法和装置
US10230670B1 (en) * 2014-11-10 2019-03-12 Google Llc Watermark-based message queue
US9942353B2 (en) 2015-06-02 2018-04-10 International Business Machines Corporation Management of connections within a messaging environment based on the statistical analysis of server responsiveness
US9853933B2 (en) * 2015-08-13 2017-12-26 60East Technologies, Inc. Message queue replication with message ownership migration
US9721551B2 (en) 2015-09-29 2017-08-01 Amper Music, Inc. Machines, systems, processes for automated music composition and generation employing linguistic and/or graphical icon based musical experience descriptions
US10854180B2 (en) 2015-09-29 2020-12-01 Amper Music, Inc. Method of and system for controlling the qualities of musical energy embodied in and expressed by digital music to be automatically composed and generated by an automated music composition and generation engine
WO2017136363A1 (en) 2016-02-05 2017-08-10 Howard Fredrick T Time limited image sharing
US10608970B2 (en) 2016-04-01 2020-03-31 International Business Machines Corporation Messaging forwarding system and method
CN108009027B (zh) * 2017-11-23 2019-09-20 北京百度网讯科技有限公司 队列消息一致性的实现方法、装置、设备及存储介质
CN108289055B (zh) * 2018-01-05 2021-04-02 创盛视联数码科技(北京)有限公司 一种基于Redis订阅服务的分布式实时聊天系统及方法
US11024275B2 (en) 2019-10-15 2021-06-01 Shutterstock, Inc. Method of digitally performing a music composition using virtual musical instruments having performance logic executing within a virtual musical instrument (VMI) library management system
US11037538B2 (en) 2019-10-15 2021-06-15 Shutterstock, Inc. Method of and system for automated musical arrangement and musical instrument performance style transformation supported within an automated music performance system
US10964299B1 (en) 2019-10-15 2021-03-30 Shutterstock, Inc. Method of and system for automatically generating digital performances of music compositions using notes selected from virtual musical instruments based on the music-theoretic states of the music compositions

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0839212A (ja) 1994-07-25 1996-02-13 Akechi Ceramics Kk 連続鋳造用ノズル
DE69528997T2 (de) 1995-08-14 2003-08-21 Ibm Verbesserte nachrichten warteschlangenverteildienste für mitteilungssysteme
JPH09233124A (ja) * 1996-02-27 1997-09-05 Mitsubishi Electric Corp パケット通信方式
US7272662B2 (en) * 2000-11-30 2007-09-18 Nms Communications Corporation Systems and methods for routing messages to communications devices over a communications network
US6789143B2 (en) 2001-09-24 2004-09-07 International Business Machines Corporation Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries
US20030182464A1 (en) 2002-02-15 2003-09-25 Hamilton Thomas E. Management of message queues
US7606881B2 (en) * 2002-04-25 2009-10-20 Oracle International Corporation System and method for synchronization of version annotated objects
JP2004131240A (ja) 2002-10-10 2004-04-30 Sharp Corp シート給送装置およびその装置を備えた画像形成装置
US8549078B2 (en) 2003-08-08 2013-10-01 Teamon Systems, Inc. Communications system providing load balancing based upon connectivity disruptions and related methods
AU2003273654A1 (en) 2003-09-05 2005-03-29 Petr Hejl Reply recognition in communications
US7194516B2 (en) 2003-10-23 2007-03-20 Microsoft Corporation Accessing different types of electronic messages through a common messaging interface
US7584256B2 (en) * 2004-04-12 2009-09-01 Borderware Technologies Inc. Replicating message queues between clustered email gateway systems
JP2005318073A (ja) * 2004-04-27 2005-11-10 Hitachi Ltd 通信装置、その動作プログラム、及び通信方法
WO2005112389A2 (en) * 2004-05-14 2005-11-24 Orderly Mind Limited Queuing system, method and computer program product for managing the provision of services over a communications network
JP4752363B2 (ja) 2004-07-21 2011-08-17 ソニー株式会社 コンテンツ処理装置,コンテンツ処理方法及びコンピュータプログラム
JP4480148B2 (ja) 2004-09-24 2010-06-16 大日本印刷株式会社 転写用マスクのip測定装置および静電吸着方式のチャックへの静電吸着用電圧の供給方法
US7567965B2 (en) 2004-10-22 2009-07-28 Microsoft Corporation Presenting message attachments independent of electronic messages at a user-interface
JP2007241394A (ja) * 2006-03-06 2007-09-20 Mitsubishi Electric Corp 分割処理管理装置及び分割処理管理システム及び演算処理実行システム及び分割処理管理方法
JP2007274018A (ja) * 2006-03-30 2007-10-18 Mitsubishi Electric Corp 無線端末装置及びサーバ装置
WO2008058259A2 (en) * 2006-11-08 2008-05-15 Mywaves, Inc. An apparatus and method for dynamically providing web-based multimedia to a mobile phone
US8595301B2 (en) 2008-01-25 2013-11-26 International Business Machines Corporation Message delivery in messaging networks
US7979497B2 (en) 2008-01-25 2011-07-12 International Business Machines Corporation Message delivery using a plurality of queue managers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9647972B2 (en) 2008-01-25 2017-05-09 Snap Inc. Message delivery in messaging networks

Also Published As

Publication number Publication date
EP2248311A1 (en) 2010-11-10
US20140040401A1 (en) 2014-02-06
US8595301B2 (en) 2013-11-26
US10491560B2 (en) 2019-11-26
KR20100103594A (ko) 2010-09-27
JP2011511976A (ja) 2011-04-14
WO2009092676A1 (en) 2009-07-30
US20170339094A1 (en) 2017-11-23
US20090193090A1 (en) 2009-07-30
US20150180813A1 (en) 2015-06-25
CN101926138A (zh) 2010-12-22
EP2248311B1 (en) 2018-11-21
US9021038B2 (en) 2015-04-28
US9647972B2 (en) 2017-05-09
US20170187672A1 (en) 2017-06-29
US9769110B2 (en) 2017-09-19

Similar Documents

Publication Publication Date Title
CN101926138B (zh) 用于在消息网络中进行消息传递的方法和系统
JP4144897B2 (ja) 共通作業キュー環境における最適格サーバ
CN1829228B (zh) 用于传输控制协议接合的方法和系统
CN109150662B (zh) 消息传输方法、分布式系统、设备、介质和无人车
JPH1078943A (ja) 分散コンピュータ環境におけるグループ・イベント管理方法及び装置
JP2004318744A (ja) 高可用性を提供するデータベース処理方法
CN109873861B (zh) 跨区块链节点的交互方法及装置、存储介质及电子设备
CN105975364A (zh) 数据备份方法及装置
CN107342929B (zh) 一种新消息通知的发送方法、装置及系统
CN102739761B (zh) 用于无连接传输协议的共享缓存器
CN109254873B (zh) 数据备份方法、相关装置及系统
JP2006048122A (ja) 通信システム
US8386692B2 (en) Method for communicating between nodes and server apparatus
CN104572315A (zh) 实现子系统间通信的方法、通信实体及分布式通信系统
CN109445966A (zh) 事件处理方法、装置、介质和计算设备
JP2009075710A (ja) 冗長化システム
CN110764932A (zh) 数据处理方法、系统、介质和计算设备
CN112714274B (zh) 视频会议方法以及视频会议资源管理方法
CN114051047B (zh) 一种会话消息的备份方法、装置、网络设备和存储介质
US8560885B1 (en) Dynamic redundancy management
CN113312209A (zh) 一种数据热备方法、装置、服务器和存储介质
CN113988797A (zh) 处理请求的方法及装置、存储介质及电子设备
CN116627964A (zh) 主数据库选取方法、装置、系统、设备及介质
CN116756214A (zh) 数据处理方法、装置、电子设备及存储介质
CN114025013A (zh) 一种信息处理方法、装置及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160421

Address after: American California

Applicant after: Schnapp Chart Co., LTD

Address before: American New York

Applicant before: International Business Machines Corp.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160803

Termination date: 20190119

CF01 Termination of patent right due to non-payment of annual fee