在发布/订阅通讯中控制消息传递制造技术

技术编号:8165728 阅读:166 留言:0更新日期:2013-01-08 12:28
一种控制一个或多个发布者应用(31)和一个或多个订阅者应用(32)之间的消息传递的通讯系统和方法包括主题管理器(40),利用主题管理器(40)能够由登记装置(41)为指定订阅者应用登记对指定主题的订阅。响应于由发布者应用把关于指定主题的消息发布到该系统,由匹配装置(45)确定(63)针对该主题是否登记了任何订阅者应用。如果这样登记了任何订阅者应用,则由传递装置(46)把发布的主题消息传递(65)到这种登记的订阅者应用。如果没有针对所述指定主题登记订阅者应用,则所述指定主题消息被存储在缓冲存储器(51)中并且响应于接收到新订阅者应用对所述主题的随后的订阅请求(80)而被传递(87)到所述新订阅者应用。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种在通讯系统中控制ー个或多个发布者应用和一个或多个订阅者应用之间的消息传递的方法、以及ー种适于控制这种传递的通讯系统。
技术介绍
发布/订阅是公知的通讯(messaging)机制,通过该机制,订阅者应用能够以消息的形式从发布者应用(以下,简单称为“发布者”和“订阅者”)接收信息。在这种环境下,消息是用于应用程序之间进行交換的数据单位。典型的发布/订阅系统具有超过ー个发布者和超过ー个订阅者。 发布者和订阅者之间的交互全部由通用通讯系统的部件(诸如,队列管理器)或者由定制部件(称为消息代理)来控制。通讯系统是软件服务,应用可连接到该软件服务,并且队列是由通讯系统维护的消息的先进先出有序列表。应用可把消息放在队列上或者从队列中请求消息。实际上,队列管理器和代理之间的区别对于本专利技术而言并不重要。发布者提供关于题材(subject)的信息,而不需要知道关于对该信息感兴趣的应用的任何事情。发布者以他们想要发布的消息的形式产生这种信息(称为发布),并定义这些消息的主题(topic)。控制部件(队列管理器或代理)接收来自发布者的消息和识别ー个或多个主题的订阅者的订阅。它随后把发布的消息路由至已登记对这些主题感兴趣的订阅者。订阅者创建描述订阅者感兴趣的主题的订阅。因此,订阅确定哪些发布被转发给订阅者。订阅者能够进行多项订阅,并且能够从许多不同的发布者接收信息。订阅由管理员或订阅者应用自己登记,以把主题链接到指定订阅者应用的输入或目的地队列。当应用发布该主题的消息时,数据的拷贝将被放在具有对该主题的订阅的每个输入队列上。因此,一个主题可具有许多订阅,从而发布被传递到许多队列。正是主题的存在才通过消除如点到点通讯中要求的那样在每个消息中包括特定目的地的需要而允许信息的提供者和消费者在发布/订阅通讯中去耦。包括这种发布/订阅功能作为其队列管理器的一部分的ー种产品是IBMWebSphere MQ, Version 7,它是ー种通讯和排队中间件产品(“ IBM”和“ WebSphere”是International Business Machines Corporation在美国和/或其它国家的商标或注册■商标)。在这种和类似产品中,当发布者创建包含它希望发布的消息的信息时,它利用最适合该发布的题材的主题串来发布该信息。为了接收发布,订阅者创建具有与主题串匹配的模式的订阅以选择发布主題。队列管理器或代理随后把发布传递给具有与发布主题匹配的订阅并被授权接收所述发布的订阅者。也可以以管理方式创建订阅,从而处理队列的应用不需要知道它正在作为“订阅者”而工作。在基于题材的发布/订阅中,发布者或管理员负责把题材分类为主題。主题实现为描述应用可能希望交換消息的感兴趣领域的文本串,例如“股票价格”。典型地,在主题串中使用“/”字符创建子主题(例如“股票价格/最高点”),题材被以分级方式组织成主题树(还要注意的是,主题能够被暗示。因此,如果“股票价格/最高点”作为主题存在,则“股票价格”一定作为主题存在)。主题是主题树中的节点,主题树是通讯基础设施内使用的所有主题的总空间。主题在没有进ー步的子主题的情况下可以是叶子节点,或者在具有子主题的情况下可以是中间节点。订阅者创建的主题串也能够包含两种替代的通配符方案中的任ー种,以对发布中的主题串进行模式匹配。主题树由作为队列管理器或代理的一部分的主题管理器响应于进入的发布或订阅请求而维护并产生。主题树的节点是订阅主題/订阅者目的地对(或者当对于单个主题存在多个订阅者时为列表),主题管理器使用所述订阅主题/订阅者目的地对,按照主题匹配进入的发布与合适的订阅者目的地。树中的一个或多个主题节点可具有控制各方面(诸如,服务质量和安全设置)的关联的管理信息。在WebSphere MQ中,通过存在于主题树之外但參考分级体系中的给定级别的“主题对象”的定义来实现这一点。主题从在它们的主题树中找到的第一个父管理节 点继承它们的属性。订阅可具有两种类型持久和非持久。非持久订阅仅在订阅应用到队列管理器的连接保持开放时才存在。当订阅应用故意地或者因为失去连接而与队列管理器断开连接吋,该订阅被去除。当连接关闭时,关于订阅的信息被从队列管理器去除并且将不再可见。不再有消息将被放到订阅者队列。持久订阅在订阅应用到队列管理器的连接关闭时继续存在。如果订阅是持久的,则当订阅应用断开连接时,订阅保持在适当的位置并且能够在订阅应用重新连接时由订阅应用使用。这确保了 最终将会传递关于订阅者曾经订阅的主题的所有消息。发布也能够具有两种类型。默认地,在发布被发送给所有感兴趣的订阅者之后,它被丢弃。然而,发布者能够指定应该保留发布的拷贝,从而它能够被发送给将来的登记对该主题的兴趣的订阅者。在发布已被发送给所有感兴趣的订阅者之后删除发布适合于事件信息,但并不总是适合于状态信息。通过保留消息,新的订阅者不必在他们接收初始状态信息之前等待再次发布信息。例如,对股票价格进行了订阅的订阅者将会立刻接收当前价格,而不必等待股票价格改变(并因而重新发布)。队列管理器能够仅保留每个主题的ー项发布,因此当新的保留发布到达队列管理器时,删除主题的现有的保留发布。采用保留发布和持久订阅这两者的发布/订阅系统被用作由IBM公司开发的 WebSphere MQ 遥测传输(Telemetry Transport)协议的基础(“WebSphere” 是International Business Machines Corporation 的注册■商标),并在标题为“Methods andApparatus forRemote Monitoring”的公开号为WO 2007/063134的国际专利申请中被广泛地描述。这解释了 在远程分布式エ厂或装备的情况下,如何通过设置“确信(assured)”标记以使本地操作控制设备的订阅持久,从而即使在断开连接的时间段期间也可以为本地操作控制设备保留重要的监测信息。当诊断应用在故障后首次连接并订阅时,保留发布也有助于提供监测装备的最后已知状态或故障之前的数据值。
技术实现思路
持久订阅和保留发布这两种已知技术满足某些应用的功能要求,诸如以上讨论的遥测传输。然而,如果没有订阅者在当前登记,则它们不保证发布将会在稍后时间或日期被订阅者看见。至多,来自发布者的最后的发布可以被标记为保留,但更早的发布将会丢失。因此,在行业中需要这种保证传递系统。因此,本专利技术提供一种在通讯系统中控制ー个或多个发布者应用和ー个或多个订阅者应用之间的消息传递的方法,该系统包括主题管理器,利用主题管理器能够为订阅者应用登记对指定主题的订阅,该方法包括下述步骤响应于由发布者应用把关于指定主题的消息发布到该系统,确定针对该主题是否登记了任何订阅者应用;如果这样登记了任何订阅者应用,则把所述发布的主题消息传递到这种登记的订阅者应用;如果针对所述指定主题没有登记任何订阅者应用,则存储所述指定主题消息,并且响应于新订阅者应用对所述主题的随后的登记,把所述存储的消息传递到所述新订阅者应用。 根据第二方面,本专利技术提供ー种包括指令的计算机程序,当在数据处理系统中执行该指令吋,该指令使该系统执行以上方法步骤。根据第三方面,本专利技术还提供一种适于控制ー个或多个发布者应用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:A·P·伯兹莫尔I·C·万斯通A·D·班克斯
申请(专利权)人:国际商业机器公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1