用于控制消息递送系统中的消息传递的方法和系统的制作方法

文档序号:8342622阅读:557来源:国知局
用于控制消息递送系统中的消息传递的方法和系统的制作方法
【技术领域】
[0001]本发明涉及消息递送系统(messaging system)中的消息传递,并且更特别地涉及控制从发布者应用到一个或更多个订户应用的消息传递。
【背景技术】
[0002]发布/订阅是消息递送机制,通过其订户应用(在下文中称为“订户”)可以从发布者应用(在下文中称为“发布者”)以消息的形式接收信息。在该上下文中,消息是用于在应用程序之间交换的数据单位(诸如一个或更多个比特或一串数据)。典型的发布/订阅系统具有多于一个发布者和多于一个订户。
[0003]通过通用的消息递送系统的组件(诸如队列管理器)或通过被称为消息中介(broker)的组件典型地控制发布者和订户之间的交互作用。消息递送系统是可以连接应用的服务,并且队列是由消息递送系统维持的消息的有序列表。应用可以将消息放置在队列上或从队列请求消息。队列管理器和消息中介之间的区别与本发明无关,并且这些术语在下面的描述内可以可互换地使用。
[0004]发布者供应关于主题的信息,而不需要知道关于对该信息感兴趣的应用的任何东西。发布者以消息的形式产生他们想要发布的这个信息,称为发布,并且定义这些消息的话题(topic)。控制组件(队列管理器或消息中介)接收来自发布者的消息以及识别关于一个或更多个话题的订户的订阅。然后它将发布的消息路由(route)到已登记的对一个或更多个话题感兴趣的订户。
[0005]订户创建描述订户感兴趣的话题的订阅。因此,订阅确定哪些发布被转送到订户。订户可以进行复数个订阅并且可以从许多不同发布者接收信息。
[0006]缺点是消息的发布可能是对于发布者和/或中介而言代价高的操作。例如,如果发布者是要求使用无线电来发布消息的低功率的传感器,则消息的发布将消耗非常需要的电池功率。此外,如果要发布的消息非常大,可能要求大量资源来发布该消息。
[0007]因此发布者期望的是诸如在例如不存在对于该消息的话题的订户时避免消息的不必要的发布。用于解决这个的已知的途径是发布者将关于消息话题的信息发送给中介并且询问是否存在任何匹配该话题的订阅。然而,这个途径要求发布者和中介之间的请求/响应会话。此外,如果发布者正在发布关于许多不同话题的消息,则可能要求许多会话。

【发明内容】

[0008]根据本发明的一个方面,提供了一种用于控制从消息递送系统的发布者应用到一个或更多个订户应用的消息传递的方法,所述一个或更多个订户应用具有向所述消息递送系统的中介应用登记的多个订阅,所述方法包括如下步骤:产生统一订阅描述,所述统一订阅描述表示向所述中介应用登记的所述多个订阅;以及将所述统一订阅描述传送到所述发布者应用。
[0009]因此实施例可以提出一种方法,通过该方法单个统一或者合并的订阅可以被产生来表示所有订阅。这个统一表示然后能够被提供给发布者,作为推送或者拉取(pull)操作,并且随后被用于确定是否应该发布消息。这种途径可以避免对在发布者和中介之间代价高的通信和/或会话的需要。此外,统一订阅描述在尺寸方面可以比所有订阅的完整列表小得多。因此实施例可以减少在发布者和中介之间发送的数据的量。
[0010]实施例还可以使得发布者能够使他发布的消息的量最小化,其又可以减少发布者使用/要求的资源的量。
[0011]产生统一订阅描述的步骤可以包括计算表示多个订阅的多个有限状态机(FSM)的并集FSM。此外,向所述中介应用登记的所述多个订阅可以由多个文本串表示,并且在计算并集FSM的步骤之前可以有将多个文本串中的每一个转换成各自的FSM使得获得表示所述多个订阅的多个FSM的步骤。
[0012]并集FSM可以被最小化和/或序列化,使得具有改善的传输特性。
[0013]所述发布者应用可以使用所述统一订阅描述来确定要发布的消息是否匹配所述多个订阅中的任何一个,并且只有当确定该消息匹配所述多个订阅中的任何一个时才发布所述消息。如果消息的话题匹配该多个订阅中的任何一个,可以确定存在至少一个想要该消息的订户,并且发布者然后可以发布该消息。相反地,如果该消息的话题不匹配多个订阅中的任何一个,可以确定不存在想要该消息的订户,并且发布者然后可以不发布该消息。
[0014]换句话说,在发布消息之前,发布者可以检查该消息的话题是否匹配由统一订阅表示的订阅中的任何一个。以这种方式,发布者应用可以被布置为仅仅在存在对于它的内容的订户的情况下发布消息。因此可以避免消息的不必要的发布。
[0015]此外,在确定要发布的消息不匹配所述多个订阅中的任何一个的情况下消息可以被存储在发布者应用处。如果在预定时间内不发布所存储的消息则可以抛弃所存储的消息。
[0016]实施例提供用于使得发布者能够只有当存在对于一个或更多个话题的订户/消费者时才发布与该一个或更多个话题有关的消息的概念。该概念可以被用在包括发布者子系统、中介子系统和多个订户子系统的发布者_订户系统中。中介子系统可以产生所有订阅的并集(即合并的描述)作为并集FSM并且随后将它发送给发布者子系统。发布者子系统然后可以存储并集FSM并且使用并集FSM来确定要发布的消息的话题是否匹配订阅中的任何一个。发布者子系统可以只有当消息的话题匹配任何订阅时才发布消息。
[0017]根据本发明的另一个方面,提供了一种计算机程序产品,用于控制从消息递送系统的发布者应用到一个或更多个订户应用的消息传递,所述一个或更多个订户应用具有向所述消息递送系统的中介应用登记的多个订阅,其中计算机程序产品包括具有具体化的计算机可读程序代码的计算机可读存储介质,该计算机可读程序代码被配置为执行如下步骤:产生统一订阅描述,所述统一订阅描述表示向所述中介应用登记的所述多个订阅;以及将所述统一订阅描述传送到所述发布者应用。
[0018]根据本发明的又一个方面,提供了一种用于控制从发布者应用到一个或更多个订户应用的消息传递的消息递送系统,所述一个或更多个订户应用具有向所述中介应用登记的多个订阅,所述系统包括:处理单元,适于产生表示向所述中介应用登记的所述多个订阅的统一订阅描述并且将所述统一订阅描述传送到所述发布者应用。
【附图说明】
[0019]现在将通过仅仅示例的方式参考附图描述本发明的实施例,在附图中:
[0020]图1是根据本发明实施例的消息递送系统的实现方式的示例的框图;
[0021]图2是根据本发明实施例的方法的实现方式的示例的流程图;以及
[0022]图3是根据本发明的实施例的系统的示意性框图。
【具体实施方式】
[0023]提出了用于使得发布者能够只有当存在对于一个或更多个话题的订户/消费者时才发布与该一个或更多个话题有关的消息的概念。该概念可以被用在包括发布者、中介和多个订户的消息递送系统中。提出了产生订阅的合并描述(或被称为“统一订阅描述”)并且随后将其发送给发布者。发布者能够使用统一订阅描述来确定要发布的消息的话题是否匹配任何订阅。以这种方式,发布者能够确定是否存在发布消息的任何需要并且由此避免发布不存在订阅的消息。
[0024]参考图1,描绘了根据本发明的一个实施例的消息递送系统。消息递送系统10包括发布者12、消息中介14、以及多个订户16。由消息中介14控制交互作用,诸如从发布者12到订户16的消息的通信。消息递送系统10是可以连接应用的服务,并且队列是由消息递送系统10维持的消息的有
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1