CN104660489B - 用于控制消息递送***中的消息传递的方法和*** - Google Patents

用于控制消息递送***中的消息传递的方法和*** Download PDF

Info

Publication number
CN104660489B
CN104660489B CN201410670752.9A CN201410670752A CN104660489B CN 104660489 B CN104660489 B CN 104660489B CN 201410670752 A CN201410670752 A CN 201410670752A CN 104660489 B CN104660489 B CN 104660489B
Authority
CN
China
Prior art keywords
message
subscription
unified
fsm
description
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.)
Active
Application number
CN201410670752.9A
Other languages
English (en)
Other versions
CN104660489A (zh
Inventor
D·P·哈里斯
S·D·休斯
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104660489A publication Critical patent/CN104660489A/zh
Application granted granted Critical
Publication of CN104660489B publication Critical patent/CN104660489B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及用于控制消息递送***中的消息传递的方法和***。提出了一种用于控制从消息递送***的发布者应用到一个或更多个订户应用的消息传递的方法,其中所述一个或更多个订户应用中的每一个具有向消息递送***的中介应用登记的一个或更多个订阅。所述方法包括如下步骤:产生表示向所述中介应用登记的多个订阅的统一订阅描述;以及将所述统一订阅描述传送到所述发布者应用。

Description

用于控制消息递送***中的消息传递的方法和***
技术领域
本发明涉及消息递送***(messaging system)中的消息传递,并且更特别地涉及控制从发布者应用到一个或更多个订户应用的消息传递。
背景技术
发布/订阅是消息递送机制,通过其订户应用(在下文中称为“订户”)可以从发布者应用(在下文中称为“发布者”)以消息的形式接收信息。在该上下文中,消息是用于在应用程序之间交换的数据单位(诸如一个或更多个比特或一串数据)。典型的发布/订阅***具有多于一个发布者和多于一个订户。
通过通用的消息递送***的组件(诸如队列管理器)或通过被称为消息中介(broker)的组件典型地控制发布者和订户之间的交互作用。消息递送***是可以连接应用的服务,并且队列是由消息递送***维持的消息的有序列表。应用可以将消息放置在队列上或从队列请求消息。队列管理器和消息中介之间的区别与本发明无关,并且这些术语在下面的描述内可以可互换地使用。
发布者供应关于主题的信息,而不需要知道关于对该信息感兴趣的应用的任何东西。发布者以消息的形式产生他们想要发布的这个信息,称为发布,并且定义这些消息的话题(topic)。控制组件(队列管理器或消息中介)接收来自发布者的消息以及识别关于一个或更多个话题的订户的订阅。然后它将发布的消息路由(route)到已登记的对一个或更多个话题感兴趣的订户。
订户创建描述订户感兴趣的话题的订阅。因此,订阅确定哪些发布被转送到订户。订户可以进行复数个订阅并且可以从许多不同发布者接收信息。
缺点是消息的发布可能是对于发布者和/或中介而言代价高的操作。例如,如果发布者是要求使用无线电来发布消息的低功率的传感器,则消息的发布将消耗非常需要的电池功率。此外,如果要发布的消息非常大,可能要求大量资源来发布该消息。
因此发布者期望的是诸如在例如不存在对于该消息的话题的订户时避免消息的不必要的发布。用于解决这个的已知的途径是发布者将关于消息话题的信息发送给中介并且询问是否存在任何匹配该话题的订阅。然而,这个途径要求发布者和中介之间的请求/响应会话。此外,如果发布者正在发布关于许多不同话题的消息,则可能要求许多会话。
发明内容
根据本发明的一个方面,提供了一种用于控制从消息递送***的发布者应用到一个或更多个订户应用的消息传递的方法,所述一个或更多个订户应用具有向所述消息递送***的中介应用登记的多个订阅,所述方法包括如下步骤:产生统一订阅描述,所述统一订阅描述表示向所述中介应用登记的所述多个订阅;以及将所述统一订阅描述传送到所述发布者应用。
因此实施例可以提出一种方法,通过该方法单个统一或者合并的订阅可以被产生来表示所有订阅。这个统一表示然后能够被提供给发布者,作为推送或者拉取(pull)操作,并且随后被用于确定是否应该发布消息。这种途径可以避免对在发布者和中介之间代价高的通信和/或会话的需要。此外,统一订阅描述在尺寸方面可以比所有订阅的完整列表小得多。因此实施例可以减少在发布者和中介之间发送的数据的量。
实施例还可以使得发布者能够使他发布的消息的量最小化,其又可以减少发布者使用/要求的资源的量。
产生统一订阅描述的步骤可以包括计算表示多个订阅的多个有限状态机(FSM)的并集FSM。此外,向所述中介应用登记的所述多个订阅可以由多个文本串表示,并且在计算并集FSM的步骤之前可以有将多个文本串中的每一个转换成各自的FSM使得获得表示所述多个订阅的多个FSM的步骤。
并集FSM可以被最小化和/或序列化,使得具有改善的传输特性。
所述发布者应用可以使用所述统一订阅描述来确定要发布的消息是否匹配所述多个订阅中的任何一个,并且只有当确定该消息匹配所述多个订阅中的任何一个时才发布所述消息。如果消息的话题匹配该多个订阅中的任何一个,可以确定存在至少一个想要该消息的订户,并且发布者然后可以发布该消息。相反地,如果该消息的话题不匹配多个订阅中的任何一个,可以确定不存在想要该消息的订户,并且发布者然后可以不发布该消息。
换句话说,在发布消息之前,发布者可以检查该消息的话题是否匹配由统一订阅表示的订阅中的任何一个。以这种方式,发布者应用可以被布置为仅仅在存在对于它的内容的订户的情况下发布消息。因此可以避免消息的不必要的发布。
此外,在确定要发布的消息不匹配所述多个订阅中的任何一个的情况下消息可以被存储在发布者应用处。如果在预定时间内不发布所存储的消息则可以抛弃所存储的消息。
实施例提供用于使得发布者能够只有当存在对于一个或更多个话题的订户/消费者时才发布与该一个或更多个话题有关的消息的概念。该概念可以被用在包括发布者子***、中介子***和多个订户子***的发布者-订户***中。中介子***可以产生所有订阅的并集(即合并的描述)作为并集FSM并且随后将它发送给发布者子***。发布者子***然后可以存储并集FSM并且使用并集FSM来确定要发布的消息的话题是否匹配订阅中的任何一个。发布者子***可以只有当消息的话题匹配任何订阅时才发布消息。
根据本发明的另一个方面,提供了一种计算机程序产品,用于控制从消息递送***的发布者应用到一个或更多个订户应用的消息传递,所述一个或更多个订户应用具有向所述消息递送***的中介应用登记的多个订阅,其中计算机程序产品包括具有具体化的计算机可读程序代码的计算机可读存储介质,该计算机可读程序代码被配置为执行如下步骤:产生统一订阅描述,所述统一订阅描述表示向所述中介应用登记的所述多个订阅;以及将所述统一订阅描述传送到所述发布者应用。
根据本发明的又一个方面,提供了一种用于控制从发布者应用到一个或更多个订户应用的消息传递的消息递送***,所述一个或更多个订户应用具有向所述中介应用登记的多个订阅,所述***包括:处理单元,适于产生表示向所述中介应用登记的所述多个订阅的统一订阅描述并且将所述统一订阅描述传送到所述发布者应用。
附图说明
现在将通过仅仅示例的方式参考附图描述本发明的实施例,在附图中:
图1是根据本发明实施例的消息递送***的实现方式的示例的框图;
图2是根据本发明实施例的方法的实现方式的示例的流程图;以及
图3是根据本发明的实施例的***的示意性框图。
具体实施方式
提出了用于使得发布者能够只有当存在对于一个或更多个话题的订户/消费者时才发布与该一个或更多个话题有关的消息的概念。该概念可以被用在包括发布者、中介和多个订户的消息递送***中。提出了产生订阅的合并描述(或被称为“统一订阅描述”)并且随后将其发送给发布者。发布者能够使用统一订阅描述来确定要发布的消息的话题是否匹配任何订阅。以这种方式,发布者能够确定是否存在发布消息的任何需要并且由此避免发布不存在订阅的消息。
参考图1,描绘了根据本发明的一个实施例的消息递送***。消息递送***10包括发布者12、消息中介14、以及多个订户16。由消息中介14控制交互作用,诸如从发布者12到订户16的消息的通信。消息递送***10是可以连接应用的服务,并且队列是由消息递送***10维持的消息的有序列表。应用可以将消息放置在队列上或从队列请求消息。队列管理器和消息中介之间的区别与本发明无关,并且这些术语在下面的描述内可以可互换地使用。
发布者12适于供应关于主题的信息,而不需要知道关于对该信息感兴趣的应用的任何东西。发布者12以消息的形式产生信息,或者发布,并且定义这些消息的一个或更多个话题。消息中介14适于除了来自一个或更多个话题的订户的订阅之外还接收来自发布者12的消息。消息中介14适于将发布的消息路由到已登记的对发布的消息的一个或更多个话题感兴趣的订户。
为了接收发布,订户创建对于所选的发布话题的订阅。消息中介14适于将发布传递给具有匹配发布话题的订阅(并且被授权接收发布)的订户。
话题能够被实现为描述应用可能希望交换消息的感兴趣区域的文本串(textstring)(例如,“device_attributes”)。主题可以通过使用正斜杠(“/”)字符被分等级地组织,诸如组织成话题树,以便创建话题串中的子话题(例如,“device_attributes/temperature”)。话题是作为在消息递送基础设施(infrastructure)内使用的所有话题的全空间的话题树中的节点。话题可以是没有进一步子话题的叶节点,或者具有子话题的中间节点。被创建为表示订阅的话题串可以包含通配符方案以便模式匹配发布的话题。
订户16创建描述订户感兴趣的一个或更多个话题的订阅。因此,订阅确定哪些发布是订户感兴趣的。订户可以进行复数个订阅并且可以从许多不同发布者接收信息。
订阅可以例如由诸如文本串之类的正则表达式(regularexpression)表示。因此,更一般地说,可以使用正则语法表示订阅的表示。在计算机科学领域中,正则语法是描述正则语言的形式语法(formal grammar)。
订阅可以具有两个类型:持久的和不持久的。不持久的订阅仅仅在订阅应用的到消息中介14的连接保持有效的时候存在。当订阅应用故意地或者由于连接丢失而不与消息中介14连接时订阅被去除。
持久的订阅在订阅应用的到消息中介14的连接结束时继续存在。如果订阅是持久的,则当订阅应用不连接时,订阅保持在原处并且可以在订阅应用重新连接时由订阅应用使用。
通过使用本发明,订阅的统一订阅描述由消息中介14产生并且随后被发送到发布者12。发布者能够使用所接收的统一订阅描述来确定要发布的消息的话题是否匹配任何订阅。如果订户存在,则消息被传送到消息中介14以用于后续传递到适当的订户。然而,如果根据统一订阅描述确定不存在对于消息话题的订户,则消息不被传送到消息中介14。作为替代它可以被发布者12存储并且稍后在指示存在对于消息话题的订户的新的统一订阅描述被传递给发布者12的情况下传递给消息中介。
因此,消息递送***10包括选择性发布概念,由此发布者12基于由消息中介14提供给它的订阅的归并或者合并的描述(“统一订阅描述”)来选择是否发布消息。在消息递送***10的该示例中,响应于对于指定话题的新的订户16的后续的登记,新的统一订阅描述由消息中介14产生并且“推送”(即在没有请求的情况下传送)给发布者12。
在消息递送***10中,订户16到***10的连接使得产生新的统一订阅描述,其然后被传送到发布者12。在同时或者之后任何时候,已经连接到***10的订户16可以向消息中介14登记对于它感兴趣的话题的新的订阅。订户16可以持久地(一旦登记,订阅保持直到明确地被删除)或者不持久地(在应用不连接时,订阅被去除)进行这个。每当存在订阅方面的变化时,新的统一订阅描述可以被产生并且传送到发布者12。
描述话题的正则表达式(诸如文本串)可以被转换为称为有限状态机(FSM)的自动机。根据自动机理论较好地理解FSM和正则表达式等价的事实。确定输入串是否匹配正则表达式的动作与确定串是否被对应FSM接受的动作完全相同。此外,可以取FSM的任何集合的并集(union),其中“并集FSM”接受由任何输入FSM接受的任何串。通过创建其每一个状态是包含来自第一FSM的状态和来自第二FSM的状态的元组(tuple)的新的FSM,来实现取这两个FSM的并集。这个过程容易推广到任意数量的FSM。
在图1的示出示例中,由中介14遵循的产生统一订阅描述的该过程可以被概述如下:
-依次取每一个订阅串。
-将每一个订阅串转换为FSM。
-计算所有这些FSM的“并集FSM”。
-使该FSM最小化(minimise)(例如使得它尽可能小)。
-使该FSM序列化(serialise)。例如,通过简单地写出它的属性,像如下:fsm(alphabet={“a”,“b”},states={0,1},initial=0,finals={1})
然后序列化的FSM被发送到发布者12。发布者12接收、解序列化和存储“并集FSM”以备将来之用。
当要发布新消息到话题时,发布者12遵循的过程可以被概述如下:
-确定FSM是否接受该话题串。
-如果FSM接受该话题串,推断存在至少一个想要这个消息的订户并且因此发布消息。
-如果FSM不接受该话题串,则推断不存在想要该消息的订户并且因此不发布该消息。
如果新的订阅被登记在消息中介14处(对于现有的或者新的订户),则消息中介14可以如下地产生新的统一订阅描述:
-将该新的订阅转换为FSM。
-计算旧的并集FSM和该新的订阅FSM的并集,以便创建新的并集FSM。
-使该新的FSM最小化。
-使该新的FSM序列化。
这个处理可以比根据所有订阅计算完全新的并集FSM更快。
将理解,该新的FSM然后能够被发送到发布者12,以用于存储和后续在确定是否发布消息时使用。
此外,将理解,这个信息的大部分能够被高速缓存。因此消息中介14可以高速缓存每一个订阅串的FSM形式,使得对于每个唯一的订阅仅仅需要执行一次串到FSM的转换处理。因此,消息中介14可以适于高速缓存最小化的并集FSM并且高速缓存并集FSM的序列化的形式。
可以优选的是,发布者12保持并集FSM本身被高速缓存,而不是从消息中介14接收的序列化的版本被高速缓存。
还注意,每当各个订阅改变时,统一订阅描述(例如并集FSM)可以不必改变。例如,如果订户A订阅话题“temperature/+”,然后后面的订户B订阅“temperature/hursley”,结果得到的并集保持不变。因此,可以不必将新的统一订阅描述发送到订户12。因此实施例可以适于在订阅改变之后确定统一订阅描述是否已经改变,并且仅仅在确定它已经改变的情况下发送新的统一订阅描述。
图2是根据本发明实施例的方法的实现方式的示例的流程图。图2示出根据本发明的一个示例的消息递送***(诸如图1中的***)执行的方法的步骤。这里,请注意由消息中介维持的订户登记列表最初是空的。
首先,在步骤100中,一个或更多个订户创建描述该一个或更多个订户感兴趣的一个或更多个话题的订阅,并且随后向中介登记该订阅。订阅确定哪些发布是一个或更多个订户感兴趣的并且被表示为正则表达式(诸如文本串)。
接下来,在步骤110中,中介产生登记的订阅的统一订阅描述。这里,描述感兴趣的话题的每一个正则表达式(例如文本串)被转换为FSM,并且随后所有FSM的并集FSM被计算。
然后并集FSM在步骤120中被发送到发布者,并且发布者随后在步骤130中接收和存储并集FSM。
当要由发布者发布新消息到话题时(在步骤132中),该方法进行到步骤135,其中发布者通过使用存储的统一订阅描述来确定要发布的消息的一个或更多个话题是否匹配任何订阅。这里,这包括确定存储的并集FSM是否接受要发布的消息的话题串。如果确定FSM不接受该话题串,则推断不存在想要该消息的订户并且该方法返回到步骤132以等待要发布的新消息。相反地,如果在步骤135中确定FSM接受该话题串,则推断存在至少一个想要这个消息的订户并且方法进行到步骤140,其中消息被传送到中介以用于后续传递到适当的订户。
中介接收从发布者传送的消息并且随后在步骤150中基于已登记的对于该消息的话题的订阅确定消息的一个或更多个目的地。中介然后在步骤160中将消息发送到适当的一个或更多个订户的一个或更多个目的地并且在步骤170中消息由一个或更多个订户接收。
图3是根据本发明的实施例的消息递送***200的示意性框图。消息递送***200包括发布者210、消息中介服务器220、以及多个订户终端230。发布者210、消息中介服务器220以及订户终端230全部连接到通信网络250(诸如因特网)。
订户创建对于所选的发布话题的订阅并且向消息中介服务器220登记该订阅。
消息中介服务器220适于产生已登记的订阅的统一订阅描述。这种产生的统一订阅描述以合并格式表示已登记的订阅,其与提供到消息中介服务器220的关于已登记的订阅的信息相比,可以例如具有减少的数据大小并且更有效地被表示和/或传送。
消息中介服务器220适于经由通信网络250将统一订阅描述发送到发布者210。
发布者210包括处理单元260和数据存储单元270。数据存储单元270适于存储从消息中介服务器220(经由通信网络250)接收的统一订阅描述。处理单元260适于分析存储在数据存储单元270中的统一订阅描述以使得确定要发布的消息的话题是否匹配由统一订阅描述表示的任何订阅。
因此,发布者210适于使用接收的统一订阅描述来确定要发布的消息的话题是否匹配任何已登记的订阅。如果存在已登记的对于该消息话题的订阅,则该消息被发送(经由通信网络250)到消息中介服务器220以用于后续传递给适当的订户终端230。
然而,如果根据统一订阅描述确定对于该消息话题不存在已登记的订阅,则消息不被发布者210发送。作为替代,该消息可以被存储在发布者210的数据存储单元270中并且稍后在指示存在对于该消息话题的订户的新的统一订阅描述被传递给发布者210的情况下被发送到消息中介服务器220。可替代地,该消息可以被抛弃(立即或者在预定时间量之后)。为了避免应用的锁死并且为了触发适当的反馈消息的产生,本发明可以被实现为使得如果在预定时间内没有登记对于该消息话题的新的订阅,则该消息可以被抛弃(例如从数据存储单元270删除)。
将明白,消息递送***200通过产生话题订阅的统一描述并且将统一描述提供给发布者210来实现了选择性发布概念。使用话题订阅的统一描述,发布者210能够确定是否应该发布消息。这可以有助于避免在消息中介服务器220和发布者210之间的不必要的通信。也可以避免从发布者210发送不必要的消息。所属技术领域的技术人员知道,本发明的各个方面可以实现为***、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
计算机程序指令也可以被装载到计算机、其它可编程数据处理设备或者其它装置上,以便使得在计算机、其它可编程设备或者其它装置上执行一系列的操作步骤以便产生计算机实现的处理,使得在计算机或者其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或者多块中指定的功能/动作的处理。
本领域技术人员将同样清楚的是,根据本发明的一个实施例的逻辑布置的一部分或者全部可以适当地被具体实现在包括逻辑元件的逻辑设备中以便执行方法的步骤,而且这种逻辑元件可以包括在例如可编程逻辑阵列或者专用集成电路中的组件,诸如逻辑门。这种逻辑布置可以通过使用例如可以通过使用固定的或者可传输的载体介质被存储和发送的虚拟硬件描述符语言,进一步被具体实现为用于在这种阵列或电路中暂时地或者永久地建立逻辑结构的启用元件。
将明白,上面描述的方法和布置也可以完全地或者部分地在一个或更多个处理器(在图中未示出)上运行的软件中被适当地执行,而且软件可以以任何合适的数据载体(同样在图中未示出)(诸如磁盘或者光盘等)上携带的一个或更多个计算机程序元件的形式被提供。用于数据传输的通道同样地可以包括全部描述的存储介质以及信号携带介质,诸如有线或无线的信号携带介质。
一般设想方法是得到期望结果的自相容的(self-consistent)一序列的步骤。这些步骤要求物理量的物理操作。通常但是不一定,这些量采取能够被存储、转移、结合、比较及其他操纵的电气或者磁信号的形式。有时方便的是,主要出于共同使用的原因,提及这些信号作为比特、值、参数、项目、元件、对象、符号、字符、术语、数量等。然而,应当注意,所有这些术语和类似术语要与适当的物理量关联并且仅仅是应用于这些量的方便的标记。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
适合于存储和/或执行程序代码的数据处理***将包括至少一个处理器,其通过***总线直接或者间接地耦接到存储元件。存储元件能够包括在实际执行程序代码期间使用的本地存储器、大容量存储器、以及高速缓存存储器,该高速缓存存储器提供至少一些程序代码的临时存储器以便减少在执行期间必须从大容量存储器取回代码的次数。
输入/输出或者I/O装置(包括但是不限于键盘、显示器、定点装置等)能够直接或者通过居间的I/O控制器耦接到***。网络适配器也可以耦接到***以便使得数据处理***能够变得通过居间的私人的或者公共的网络而耦接到其它数据处理***或者远程打印机或者存储装置。调制解调器、电缆调制解调器以及以太网卡就是几种现行的类型的网络适配器。
出于例示和描述的目的已经给出了本发明的描述,并且本发明的描述不意图是穷举的或者限于所公开的形式的发明。本领域技术人员将清楚许多修改和变型。实施例被选择和描述以便最好地说明本发明的原理、实际应用,并且使得其它本领域中普通的技术人员能够理解本发明,其中各种实施例具有如适于设想的特定用途的各种修改。

Claims (11)

1.一种用于控制从消息递送***的发布者应用到一个或更多个订户应用的消息传递的方法,所述一个或更多个订户应用具有向所述消息中介服务器的中介应用登记的多个订阅,所述方法包括如下步骤:
接收统一订阅描述,所述统一订阅描述表示向所述中介应用登记的所述多个订阅,其中所述统一订阅描述是所述多个订阅的合并的描述,所述统一订阅描述接收自所述消息中介服务器;
确定由发布者产生的特定消息的特定消息主题是否匹配接收自所述消息中介服务器的所述统一订阅描述中的至少一个统一订阅描述,以及
响应于确定所述特定消息主题不匹配接收自所述消息中介服务器的所述统一订阅描述中的至少一个统一订阅描述,不将所述特定消息传送到所述消息中介服务器。
2.根据权利要求1所述的方法,其中产生统一订阅描述的步骤包括:
计算表示所述多个订阅的多个有限状态机FSM的并集FSM。
3.根据权利要求2所述的方法,其中向所述中介应用登记的所述多个订阅由多个文本串表示,并且其中计算并集FSM的步骤之前有如下步骤:
将所述多个文本串中的每一个转换成各自的FSM,使得获得表示所述多个订阅的所述多个FSM。
4.根据权利要求2或者3所述的方法,其中产生统一订阅描述的步骤进一步包括如下中的至少一个:使并集FSM最小化;以及使并集FSM序列化。
5.根据权利要求1所述的方法,进一步包含以下步骤:
在确定要发布的所述特定消息不匹配所述多个订阅中的任何一个时,在所述发布者应用处存储所述特定消息以用于在稍后时间发布。
6.根据权利要求5所述的方法,进一步包括如果在预定时间内不发布所存储的消息则抛弃所存储的消息。
7.一种用于控制从发布者应用到一个或更多个订户应用的消息传递的消息递送***,所述一个或更多个订户应用具有向中介应用登记的多个订阅,所述***包括:
处理单元,适于:接收表示向所述中介应用登记的所述多个订阅的统一订阅描述,其中所述统一订阅描述是所述多个订阅的合并的描述,所述统一订阅描述接收自所述消息中介服务器;
确定由发布者产生的特定消息的特定消息主题是否匹配接收自所述消息中介服务器的所述统一订阅描述中的至少一个统一订阅描述,以及
响应于确定所述特定消息主题不匹配接收自所述消息中介服务器的所述统一订阅描述中的至少一个统一订阅描述,不将所述特定消息传送到所述消息中介服务器。
8.根据权利要求7所述的***,其中所述处理单元适于通过计算表示所述多个订阅的多个FSM的并集FSM来产生统一订阅描述。
9.根据权利要求8所述的***,其中向所述中介应用登记的所述多个订阅由多个文本串表示,并且其中所述处理单元进一步适于将所述多个文本串中的每一个转换成各自的FSM,使得获得表示所述多个订阅的多个FSM。
10.根据权利要求9所述的***,其中所述处理单元进一步适于使所述并集FSM最小化和使所述并集FSM序列化。
11.根据权利要求7所述的***,其中所述发布者应用适于在确定要发布的所述特定消息不匹配所述多个订阅中的任何一个的情况下存储所述特定消息。
CN201410670752.9A 2013-11-22 2014-11-21 用于控制消息递送***中的消息传递的方法和*** Active CN104660489B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1320619.8 2013-11-22
GB1320619.8A GB2520514A (en) 2013-11-22 2013-11-22 Message delivery in a messaging system

Publications (2)

Publication Number Publication Date
CN104660489A CN104660489A (zh) 2015-05-27
CN104660489B true CN104660489B (zh) 2018-01-12

Family

ID=49918032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410670752.9A Active CN104660489B (zh) 2013-11-22 2014-11-21 用于控制消息递送***中的消息传递的方法和***

Country Status (3)

Country Link
US (1) US10298661B2 (zh)
CN (1) CN104660489B (zh)
GB (1) GB2520514A (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2532490B (en) * 2014-11-21 2017-02-22 Ibm Publish/subscribe messaging using message structure
US10102110B1 (en) * 2015-06-10 2018-10-16 The United States Of America As Represented By The Secretary Of The Navy Simulation process for interface behavior
JP6870568B2 (ja) * 2017-10-24 2021-05-12 オムロン株式会社 通信システム、制御装置、設定装置、設定方法およびプログラム
US10866844B2 (en) * 2018-05-04 2020-12-15 Microsoft Technology Licensing, Llc Event domains
US11475003B1 (en) * 2018-10-31 2022-10-18 Anaplan, Inc. Method and system for servicing query requests using dataspaces
US11481378B1 (en) 2018-10-31 2022-10-25 Anaplan, Inc. Method and system for servicing query requests using document-based metadata
US11580105B2 (en) 2018-10-31 2023-02-14 Anaplan, Inc. Method and system for implementing subscription barriers in a distributed computation system
US11281683B1 (en) 2018-10-31 2022-03-22 Anaplan, Inc. Distributed computation system for servicing queries using revisions maps
US11573927B1 (en) 2018-10-31 2023-02-07 Anaplan, Inc. Method and system for implementing hidden subscriptions in a distributed computation system
US11354324B1 (en) 2018-10-31 2022-06-07 Anaplan, Inc. Method and system for servicing query requests using revisions maps
CN109729154B (zh) * 2018-12-13 2021-10-15 四川省能源投资集团有限责任公司 一种基于控制器的简单消息订阅发布服务方法
CN110488714B (zh) * 2019-08-30 2021-04-02 苏州浪潮智能科技有限公司 一种异步状态机控制方法及装置
EP4038514A1 (en) * 2019-10-03 2022-08-10 Anaplan, Inc. Method and system for implementing subscription barriers in a distributed computation system
US11158189B2 (en) 2020-02-12 2021-10-26 Global Traffic Technologies, Llc Location-based message distribution
CN112596917A (zh) * 2020-11-20 2021-04-02 广东电网有限责任公司广州供电局 电力数据信息处理方法、装置、控制设备和存储介质
CN117811833B (zh) * 2024-02-23 2024-05-10 山东华翼微电子技术股份有限公司 一种基于发布订阅模式的网络密码机统一管理***及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101960825A (zh) * 2008-03-05 2011-01-26 国际商业机器公司 发布/订阅消息中介
CN102469032A (zh) * 2010-10-29 2012-05-23 国际商业机器公司 发布-订阅消息传递的方法和***
CN102687167A (zh) * 2009-12-07 2012-09-19 国际商业机器公司 对于发布-订阅***的上下文支持
CN102859541A (zh) * 2010-04-19 2013-01-02 国际商业机器公司 在发布/订阅通讯中控制消息传递

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4843544A (en) * 1987-09-25 1989-06-27 Ncr Corporation Method and apparatus for controlling data transfers through multiple buffers
US6421570B1 (en) * 1997-08-22 2002-07-16 Honeywell Inc. Systems and methods for accessing data using a cyclic publish/subscribe scheme with report by exception
EP1130845A3 (en) * 2000-02-18 2001-09-12 Agilent Technologies Inc. a Delaware Corporation Publish/subscribe system
AU2002355575A1 (en) * 2001-08-08 2003-02-24 Trivium Systems Inc. Scalable messaging platform for the integration of business software components
US7406537B2 (en) * 2002-11-26 2008-07-29 Progress Software Corporation Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes
US20030208539A1 (en) * 2002-05-02 2003-11-06 Gildenblat Ilya G. Event-driven information publication
GB0311260D0 (en) * 2003-05-16 2003-06-18 Ibm Publish/subscribe messaging system
US20050064883A1 (en) * 2003-09-22 2005-03-24 Heck John Frederick Unified messaging server and method bridges multimedia messaging service functions with legacy handsets
US7822801B2 (en) * 2004-10-14 2010-10-26 International Business Machines Corporation Subscription propagation in a high performance highly available content-based publish/subscribe system
US8346697B2 (en) * 2008-10-31 2013-01-01 International Business Machines Corporation Direct construction of finite state machines
US8090814B2 (en) * 2009-12-08 2012-01-03 The Boeing Company Method for determining distribution of a shared resource among a plurality of nodes in a network
US8990332B2 (en) * 2009-12-21 2015-03-24 International Business Machines Corporation Performance optimization of a publish operation
US20120215858A1 (en) * 2011-02-23 2012-08-23 International Business Machines Corporation Caching potentially repetitive message data in a publish-subscription environment
WO2012159252A1 (en) 2011-05-20 2012-11-29 Nokia Corporation Method and apparatus for matching publications and subscriptions based in part on contextual characteristics associated with the subscriptions or publications
US20140201276A1 (en) * 2013-01-17 2014-07-17 Microsoft Corporation Accumulation of real-time crowd sourced data for inferring metadata about entities

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101960825A (zh) * 2008-03-05 2011-01-26 国际商业机器公司 发布/订阅消息中介
CN102687167A (zh) * 2009-12-07 2012-09-19 国际商业机器公司 对于发布-订阅***的上下文支持
CN102859541A (zh) * 2010-04-19 2013-01-02 国际商业机器公司 在发布/订阅通讯中控制消息传递
CN102469032A (zh) * 2010-10-29 2012-05-23 国际商业机器公司 发布-订阅消息传递的方法和***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于RFD的发布/订阅***的设计与实现;包辰明;《中国硕士学位论文全文数据库,信息科技辑》;20120531;全文 *
对等网络环境下发布/订阅***的路由机制研究;高胜;《中国博士学位论文全文数据库,信息科技辑》;20130715;正文第14页倒数第4行-第15页第8行 *

Also Published As

Publication number Publication date
US10298661B2 (en) 2019-05-21
CN104660489A (zh) 2015-05-27
GB201320619D0 (en) 2014-01-08
US20150149570A1 (en) 2015-05-28
GB2520514A (en) 2015-05-27

Similar Documents

Publication Publication Date Title
CN104660489B (zh) 用于控制消息递送***中的消息传递的方法和***
US10466885B2 (en) Transactional conversation-based computing system
US11139993B2 (en) Method, apparatus, and computer program product for generating a predicted channel add object in a group-based communication system
CN109416762A (zh) 用于物联网的分布式行为和知识的技术
CN109313719A (zh) 使用神经网络生成文本段的依存性解析
JP7200277B2 (ja) ワードスロットを識別するための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
US11194686B2 (en) Data agnostic monitoring service
US20240205266A1 (en) Epistemic uncertainty reduction using simulations, models and data exchange
CN109117252A (zh) 基于容器的任务处理的方法、***及容器集群管理***
CN111340220A (zh) 用于训练预测模型的方法和装置
EP4283465A1 (en) Data processing method and apparatus, and storage medium
CN109960212B (zh) 任务发送方法和装置
CN110070394A (zh) 数据处理方法、***、介质和计算设备
US20150253969A1 (en) Apparatus and Method for Generating and Outputting an Interactive Image Object
CN111767149A (zh) 调度方法、装置、设备及存储设备
US10248507B1 (en) Validation of condition-sensitive messages in distributed asynchronous workflows
WO2023092266A1 (en) Providing contact information and connection history with collaboration applications
Emoto et al. Improvement of automatic physics data analysis environment for the lhd experiment
US20150120676A1 (en) Automatically publishing course offerings for different types of courses according to a plurality of policies and educational institutions
US11810022B2 (en) Contact center call volume prediction
WO2022119929A1 (en) Systems and methods for administrating a federated learning network
CN111951788A (zh) 一种语言模型的优化方法、装置、电子设备及存储介质
CA3119490A1 (en) Contact center call volume prediction
KR102636966B1 (ko) 통합 인터페이스 정보 관리 및 공유 방법, 장치 및 시스템
KR102650587B1 (ko) 정량적 기준 및 정성적 기준을 고려한 계약 중개인에 대한 평가 및 매칭 솔루션 제공 방법, 장치 및 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant