[go: up one dir, main page]

CN101193077A - 用于订阅匹配的方法和系统 - Google Patents

用于订阅匹配的方法和系统 Download PDF

Info

Publication number
CN101193077A
CN101193077A CNA200710186957XA CN200710186957A CN101193077A CN 101193077 A CN101193077 A CN 101193077A CN A200710186957X A CNA200710186957X A CN A200710186957XA CN 200710186957 A CN200710186957 A CN 200710186957A CN 101193077 A CN101193077 A CN 101193077A
Authority
CN
China
Prior art keywords
subscriber
subscribe
publish
subscription
publication
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.)
Pending
Application number
CNA200710186957XA
Other languages
English (en)
Inventor
本杰明·J·弗莱彻
马丁·J·盖尔
加雷思·E·琼斯
乔斯·E·加尔扎
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 CN101193077A publication Critical patent/CN101193077A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提供了用于在发布/订阅通信网络中的灵活的主题标识的方法、装置和计算机程序。发布者和订户能够指定他们关于在订阅匹配期间将由发布/订阅代理使用的主题分类方案的意图,并且代理响应于发布者和订户之一或两者所指定的意图而调用各自的订阅匹配组件。所调用的匹配组件每个实现与所指定的主题分类方案一致的订阅匹配处理。

Description

用于订阅匹配的方法和系统
技术领域
本发明涉及数据处理网络内的通信,并且具体地,涉及实现发布/订阅通信范例的装置、方法和计算机程序。
背景技术
在消息网络内,可以通过一个或多个“消息代理”把消息从一个数据处理系统传送到另一数据处理系统,该消息代理提供路由,并且在多数情况下,提供格式化和其他服务。尽管可能在分布式代理网络内的不同点上实现代理功能,但是通常,代理位于网络内的通信集线器上。
很多消息代理支持发布/订阅通信范例。这包括公布者发送可以被已经登记了其有兴趣接收的通信类型的一组订户接收的通信,而通常无须发布需得知哪些订户感兴趣的应用程序。发布/订阅允许订户接收感兴趣的领域内的最新信息(例如,股票价格或诸如或新闻动画或特价之类的事件),而不必抢先且重复地从各发布者处请求该信息。
典型的发布/订阅环境具有多个发布者应用程序,这些发布者应用程序通过代理把消息发送到位于网络间的远程计算机上的潜在大量的订户应用程序。订户用代理登记并标识他们希望接受的信息的种类,并且该信息被存储在代理处。在很多发布/订阅实现中,订户指定代表他们希望接受的信息的一个或多个主题名称。发布者把主题名称分配给他们发送到发布/订阅代理的消息,并且代理使用匹配引擎来比较所接收的消息的主题与已登记订户组的所存储的订阅信息。该比较确定应该把消息转发到哪些订户。
另一种已知的发布/订阅环境在与订户应用程序相同的数据处理系统上实现发布/订阅匹配引擎。发布者把发布物(publication)发送到该系统,并且发布/订阅匹配引擎确定哪些发布物是本地订户应用程序感兴趣的。在本发明的上下文中,术语“发布/订阅代理”想要包括在发布者和订户之间的中间网络节点处实现的发布/订阅匹配引擎,该术语还想要包括当在订户的数据处理系统上被实现时的发布/订阅匹配引擎。
尽管订阅匹配经常包含检查所发布的消息的报头内的主题域,但是匹配可以另外地或选择性地包含检查其他消息报头域或检查消息内容并基于附加信息过滤消息。例如,实现JavaTM消息服务(JMS)的消息代理通常允许基于消息性质(而不是基于作为消息内容或“有效负载”的应用程序数据)来过滤。消息代理可以执行附加功能,比如格式化或另外在把所接收的消息转发给订户之前处理该消息。(Java和基于Java的名称是Sun Microsystem公司的商标。)
支持发布/订阅范例并且支持基于消息性质或消息内容来过滤的消息代理产品的商业可用示例是如在IBM公司2006年七月的文件“IBM WebSphereMessage Broker Version 6 Release 0-Introduction”和IBM公司2006年七月的文件“IBM WebSphere Message Broker Version 6 Release 0-Publish/Subscribe”中所描述的IBM公司的WebSphere消息代理。(IBM和WebSphere是国际商业机器公司的商标。)
该发布/订阅范例是把信息散布到多个用户的有效方式,并且对于那种发布者和/或订户组可能随时间变化的环境和发布者和/或订户的数量可能很大的环境尤其有用。尽管一些订阅是“非永久的”(即,仅当订阅应用程序与代理连接时才保持激活),但是很多订阅是“永久的”,并且保持激活直到订阅应用程序明确地退订(unsubscribe)。当“永久的”订户不再希望接收发布物时,订户可以从代理中退订(或从特定的主题或主题组中退订)。
通常分层地指定主题,例如,使用字符串格式“根/主题A/主题X”,其中主题A是在根节点下面的层次的第一级别中的可用主题之一,并且主题X在主题A下面的层次的第二级别中的可用主题之一,并且“/”字符是层次的不同级别的主题名称之间的分隔符。图1示出简单的主题树,其中根节点下的树的第一级别具有两个主题,主题A和主题B,并且在主题A下的树的第二级别具有多个主题,主题X、主题Y和主题Z。订户SUBSCRIBER 1(图1中的SUB.1)已经订阅了接收主题“根/主题A/主题X”上发布的消息,并且他们的订阅与主题树的各节点有关。依次比较每个所接收的消息内的主题串的元素与在主题树的各级别处的节点组,直到标识出与所接收的主题串匹配的树节点,或直到确定没有匹配。当标识了匹配时,把发布物转发给已经登记接收关于该主题的发布物的订户(经过基于消息性质或已经被指定的在具体订阅内的消息内容检查任意过滤器后)。
这种分层结构允许发布者和订户在所发布的消息内和在订阅请求内非常精确地指定主题,并且允许使用迭代地移过主题层次的匹配算法来比较在所接收的消息内的主题串与订阅的内容。
传统的分层主题名称和相应的匹配算法的问题是发布者和订户以及发布/订阅代理必须都知道主题层次并且必须都使用对于分层主题名称的一致的表达。例如,由于在主题层次中优选“汉普郡/天气”而不是“天气/汉普郡”不是因为直觉的原因(反之亦然),所以新订户必须学会发布者所使用的具体层次。类似地,新发布者需要与现有订户的期望一致,或者新发布者必须向所有订户通知他们的具体主题层次,以便订户能够相应地订阅。
在过去,对于单个公司内的私有网络和对于公司间发布/订阅解决方案来说,发布者和订户已经接受了这种限制,因为这看似对于发布者和订户的整合以及对于有效的发布/订阅代理操作都是至关重要的。然而,新发布者和订户要实现现有分层主题命名协定的需要可能阻碍新发布者和/或订户加入该发布/订阅网络。
通过使用通配符,例如允许订户订阅“天气/*”(其中“*”是可以取任意值的通配符)代替不得不分别订阅“天气/汉普郡”、“天气/多塞特”和“天气/萨里”等,实现了一些灵活性,但是,那是探索层次知识的示例,并不能使用户避免学习和遵照层次的不便。例如,“英国/天气/*”的订阅将不匹配关于关于“英国/*/天气”的发布物。
Lepori等人的“Push communication services:a short history,a concreteexperience and some critical reflection”,Studies in Communication Sciences 2/1,2002,149-164页,描述了简化的可替换的途径,在其中发布/订阅网络中的发布者把他们的发布物分类,并且订阅的用户根据使用布尔(Boolean)匹配的简单的关键词方案指定他们的兴趣。然而,由Lepori等人提出的简单的关键词组对于在很多发布/订阅系统中所出现的大量不同的主题来说是不够精细的(granular)。可以预期指定大量关键词的典型订户将接收到过多部分的所发布的消息。例如,使用布尔操作“OR”(“英国”OR“汉普郡”OR“天气”)指定一组关键词的订户可以预期将收到关于其他国家的天气信息以及关于主题“英国”的所有所发布的信息和关于主题“汉普郡”的所有信息。为了减少他们接收的发布物的数量,订户可以使用布尔操作符AND,不过指定(“英国”AND“天气”AND“汉普郡”)的订阅将错过具有主题(“英国”、“天气”)的发布物。即使使用理解力好的关键词匹配算法,充分广泛定义了其订阅以捕获所有期望的发布物的订户很有可能还会收到大量不需要的发布物。
因此,使用布尔匹配的关键词方案不是很适合于需要接收所有相关商业重要发布物的订户,也不适合于不希望负担大量不相关发布物的订户。为了解决这些问题,Lepori等人的相关技术读者将回到更加精细和精确(和限制)的分层主题命名方案。
发明内容
提供了用于在发布/订阅通信网络中的灵活的主题标识的方法、装置和计算机程序。发布者和订户能够指定他们关于在订阅匹配期间将由发布/订阅代理使用的主题分类方案的意图,并且代理响应于发布者和订户之一或两者所指定的意图而调用各自的订阅匹配组件。所调用的匹配组件每个实现与所指定的主题分类方案一致的订阅匹配处理。
本发明的第一方面提供了一种用于从至少一个发布者处接收发布物并将发布物转发给已经登记了对接收发布物的兴趣的订户的发布/订阅代理。该发布/订阅代理包括:用于比较在所接收的发布物内的主题标识符与在被存储在所述发布/订阅代理中的订阅内的主题标识符以确定应该把所述发布物转发给哪些订户的装置;其中,所述用于比较的装置包括一组订阅匹配组件和用于选择所述一组订阅匹配组件中的至少一个的装置,其中,所述用于选择的装置响应于指定所要求的主题分类方案的订户或发布者中的至少一个。
本发明的第二方面提供了用于发布/订阅数据处理系统中的订阅匹配的方法,其中,所述订阅匹配包括比较所接收的发布物内的主题标识符与订户的所存储的订阅内的主题标识符,以确定是否应该把所接收的发布物转发给订户,该方法包括步骤:
从订阅中确定各自的订户希望订阅匹配来实现第一主题分类方案还是第二主题分类方案;以及
响应于所述确定步骤,调用订阅匹配组件来进行实现所述第一主题分类方案和第二主题分类方案中相应一个的订阅匹配处理。
在第一实施例中,发布者指定的主题分类方案是分层的主题分类方案,并且第二主题分类方案是非分层的关键词分类方案。以这种方式,如果发布者指定分层的主题串,那么订户可以决定是否使用对应于该发布者的主题层次的主题串或使用作为独立关键词的主题串元素来指定他们感兴趣的主题。然后,发布/订阅代理依照每个订户的决定实现不同的订阅匹配处理。
在本发明的一个实施例中,当发布者第一次与发布/订阅代理连接时,发布者向发布/订阅代理通知他们的主题分类方案。然后,代理保留各个发布者的方案信息。在另一实施例中,发布者指定在各个发布物内他们的主题分类方案,或者发布者可以指定用于找到他们的方案的信息。在后一示例中,发布物可以包括由代理使用以在需要时访问XML方案信息的统一资源标识符(URI)。
当订户指示他们的订阅想要反映发布者指定的方案时,代理调用对该方案特定的订阅匹配组件。例如,如果订阅指示想要考虑由发布者指定的主题层次,那么代理调用匹配算法,其比较所接收的发布物与分层主题树以标识相关订阅——逐级迭代地匹配分层主题串的元素。仅在发布物和订阅包括相同的分层主题串(经过通配符和过滤器,如上所述)的条件下,匹配算法才标识匹配。然而,如果订户指示想要把各自的订阅内的主题名称元素解释为一组独立的关键词,那么代理调用实现基于关键词的比较的合适的订阅匹配组件。
这给订户关于他们希望接收哪些发布物的相当大的灵活性,包括是否限于包括关于明确主题串的发布物或是否接收关于订户感兴趣的指定的主题组的所有发布物。代理能够通过选择合适的订阅匹配处理来响应订户的要求。
在一个实施例中,单个订户可以指定不止一个主题串,想要将第一串与来自实现第一分类方案的第一组发布者的在代理处接收的发布物比较,而将第二串与来自实现第二分类方案的第二组发布者的发布物比较。
类似地,发布者可以指定不止一种格式的信息,用于通过与不同的订阅相关的不同的匹配算法来处理。例如,发布物可以包括在其中可以指定分层主题串的主题域,以及在其中可以指定一组一个或多个标签或关键词的标签域。这允许单个发布物包括用于与不同的订阅方案比较的合适的格式的信息。
加入发布/订阅网络的新订户可以使用一组独立关键词(例如,指定布尔OR操作或使用逗号分隔符的逻辑等效物)初始地订阅以接收关于大量感兴趣的笼统主题的发布物。代理比较每个关键词与已发布的消息,并且把与任意关键词匹配的信息发送到订户。然后,订户可以通过从所接收的组中选择最感兴趣的发布物,并且选择这些感兴趣的发布物的主题串用在所精选的订阅或订阅组中来精选他们的订阅。例如,所精选的订阅组可以包括从被订户标识为特别有帮助的发布物中提取的一组分层的主题串。现有技术解决方案中没有提供这种订户能在不同的主题分类方案间切换的能力。
以类似的方式,依赖于分层主题串来接收发布物的第一子集的现有订户可能希望定期检查发布/订阅网络以便找到感兴趣的其他发布物。这可以通过定期把他们的订阅切换成较少受限的主题分类方案来实现。如果更广范围的订阅标识了附加的感兴趣的发布物,那么可以提取在这些附加发布物内的主题串并将其用来创建包括分层主题串的新订阅。
上述示例示出本发明提供了相当大的灵活性——在可以被满足的主题分类方案方面,以及在可以如何表达和解释发布者和订户的意图方面。
本发明的另一方面提供了一种在发布/订阅通信网络中使用的数据处理系统,所述系统包括:
用于从一个或多个发布者处接收发布物的装置;
用于把发布物发送到一个或多个订户的装置;以及
发布/订阅代理,用于比较在所接收的发布物内的主题标识符与在被存储在发布/订阅代理中的订阅内的主题标识符,以确定应该把哪些发布物发送给哪些订户;
其中,所述发布/订阅代理包括至少两个订阅匹配组件和用于从订阅中确定各个订户想要代理的订阅匹配来实现第一发布者指定的主题分类方案还是第二主题分类方案;以及
其中,所述发布/订阅代理响应于所述确定步骤来调用订阅匹配组件,以进行实现第一主题分类方案和第二主题分类方案中相应一个的订阅匹配处理。
本发明的另一方面提供了一种在发布/订阅通信网络中使用的数据处理系统,所述系统包括:数据处理单元;数据存储单元;网络通信接口;以及发布/订阅代理,用于从至少一个发布者处接收发布物并将发布物转发给已经登记了对接收发布物的兴趣的订户,其中,所述发布/订阅代理包括:用于比较在所接收的发布物内的主题标识符与在被存储在所述发布/订阅代理中的订阅内的主题标识符以确定应该把所述发布物转发给哪些订户的装置;其中,所述用于比较的装置包括一组订阅匹配组件和用于选择所述一组订阅匹配组件中的至少一个的装置,其中,所述用于选择的装置响应于指定所要求的主题分类方案的订户或发布者中的至少一个。
可以以计算机程序代码实现本发明的实施例,并且可以使其作为程序产品可用,该程序产品包括被记录在记录介质上用于控制在其上执行该程序代码的数据处理装置的操作的程序代码。
附图说明
下面,以示例的方式,参考附图更详细地描述本发明的实施例,在附图中:
图1是诸如在本技术领域中已知的、简单主题层次的示意表示;
图2是诸如在本技术领域中已知的、在其中可以实现本发明的发布/订阅网络的示意表示;
图3是根据本发明的实施例的示例消息结构的示意表示;
图4是根据本发明的实施例的发布/订阅代理的组件的示意表示;以及
图5是表示根据本发明的实施例的订阅匹配方法的示意流程图。
具体实施方式
下面更详细地描述本发明的多个实施例,以进一步理解本发明和其优势以及可能的实现。本发明不限于这些图示的实施例。所描述的实施例包括用于在发布/订阅通信环境下的订阅匹配的方法、装置和计算机程序。激活和/或停用(deactivation)事件与订阅关联,并被用于控制何时激活订阅。避免传统的订阅匹配用于不活动的订阅。
图2示出在其中可以实现本发明的简单的发布/订阅消息网络。这种网络在本技术领域中是已知的。运行在各自的数据处理系统30、40上的一组发布者10、20可以能够通过发布者把消息发送到中间发布/订阅消息代理50来发布可以被多个订户90、100、110接收的消息。发布者和订户不需要在他们之间直接连接并且不需要彼此的地址信息。而是,发布者把消息发送到代理50,该消息包括诸如他们所发布的消息内的消息主题之类的信息。在该示例中,发布者10、20是依赖下面的消息基础结构产品150、160的消息传送功能的应用程序,其中产品150、160保存网络地址和用于代理50的其他通信信息。
在该示例中,在与发布者系统30、40分离并且与订户的系统120、130、140分离的数据处理系统60上实现消息代理。该消息代理包括订阅匹配引擎70和相关联的所存储的订阅列表80。订户向代理50登记并且比如通过指定一个具体的消息主题或多个主题,来指示他们对具体信息的兴趣。把订户的要求存储在代理处。在一个实施例中,代理还可以存储用于各个订户系统的网络地址和协议,并且代理可以发起连接;但是,在优选实施例中,代理仅存储了订户系统和他们的订阅的名称,并且把网络和通信信息保存在订户的系统处,并且在订户发起与代理的连接时使用该信息。
代理50中的订阅匹配引擎70依次比较所接收的发布物与所存储的订阅,以确定哪些所接收的发布物与哪些订户的要求匹配,并且代理把发布物转发给感兴趣的订户。虽然图1中仅示出了很少的发布者和订户,但是网络内可能有很多发布者和很多订户,并且发布/订阅代理可能是分布式代理网络的一部分。
出于成本原因并且为了促进正在进行的开发,普遍以计算机程序代码实现发布/订阅匹配引擎。通常,可以以计算机程序代码实现包括所描述的发布/订阅代理、发布者应用程序和订户应用程序的本发明的各种元素。可以以诸如C++、JavaTM或SmallTalk之类的面向对象的编程语言或以诸如C编程语言的过程编程语言来写出该代码。可以在通用计算机上或在专门的数据处理装置上执行这些程序代码组件。如下面所详细确认的,可以全部在单个数据处理设备上执行实现一些特性和本发明的方面的程序代码,或可以将其分布在诸如局域网(LAN)、广域网(WAN)、或因特网之类的数据处理网络内的多个数据处理系统之间。在这种网络内的不同系统和设备间的连接可以是有线的或者无线的,并且不限于任何具体通信协议或数据格式,并且这种网络中的数据处理系统可以是异构的系统。
在很多情况下,将在高容量、高性能、与网络连接的数据处理系统上实现发布/订阅代理-因为这种系统可以维持用于大量发布者和订户的高性能发布物的发布量。发布/订阅代理可以是边缘服务器的组件(即,代理可以是一组网络服务器或应用程序服务器组件之一)或网关设备。然而,近些年来已经开发出具有小代码印迹的“微代理”解决方案,并且已经将其用于例如远程遥测应用中,所以现在真实地说,在任意一个宽范围的数据处理系统和设备上都可以实现发布者、订户和发布/订阅代理。因此可以在包括无线连接的PDA、移动电话和自动传感器设备的网络中以及包括复杂的并且高性能的计算机系统的网络中实现本发明。
对于本领域的技术人员来说将很清楚,可以以软件或以硬件(例如,使用电子逻辑电路)实现分布式发布/订阅通信网络的各种组件。例如,可以通过硬件比较器实现发布/订阅匹配引擎70,该比较器比较所发布的消息内的主题名称与所存储的订阅内的主题名称。然后,在电子电路内处理指示匹配或缺乏匹配的比较器的输出信号,以控制是否把消息转发给具体订户。可以通过电子过滤器实现通过某些发布/订阅匹配引擎所实现的过滤步骤——尤其是,在施加过滤器在其上的数据值作为信号振幅来表示的情况。
如上所释,本发明适用于依赖位于中心的代理(如图1所示)或分布式代理网络的发布/订阅通信环境。本发明提供了管理多个订户的订阅的发布/订阅代理的具体优势,但是,本发明还适用于在其中发布/订阅代理包括在每个订户系统中被复制的发布/订阅匹配引擎功能性的环境。
因此,很清楚本发明适用于宽范围的操作环境,并且可以使用硬件和软件的各种组合来实现本发明。在每种情况下,在发布/订阅通信网络内,本发明提供了发布者和/或订户对主题的指定中的增加的灵活性和发布/订阅代理的订阅匹配中的灵活性。
下面参考图3到5描述本发明的实施例。图3是包括一组消息报头域和消息主体(消息的“有效负载”数据)的典型消息的结构的示意表示。消息报头可以包括多个不同的域,该域包括,例如:消息格式信息;主题域;所要求的服务质量的指示(永久的或非永久的,以控制是否应该把消息保存到非易失存储器,以在故障的情况下可以被恢复);以及保留标记(以指示代理是否应该保留该发布物的副本,以使该主题的最新发布物对于此主题的未来订户是可用的)。附加的报头域在本技术领域中是已知的。
例如发布者应用程序可以使用诸如如下的API呼叫来调用在与发布/订阅代理的现有连接上的发送操作以发布信息:
发布(主题、数据、永久性、保留)
其中“永久性”和“保留”的每个是如上所述的消息性质,并且是与所发布的消息的报头域内的主题信息一起被指定的。所发布的消息的报头域可以包括在其中由字符“/”来分隔文本元素的字符串。在实现分层主题分类方案的传统的发布/订阅系统中,解译诸如“根/主题A/主题X”的由发布者指定的主题串作为单个层次主题名称,并仅将其标识为对于指定完全相同的主题串“根/主题A/主题X”(或等同使用诸如“*/主题A/主题X”或“根/主题A/*”的通配符)的订阅的匹配。
从编程API解释为消息报头在本技术领域中是已知的。例如,在一些已知的系统中,消息具有包含了以类似XML格式的发布/订阅属性的报头。关于主题“根/主题A/主题X”的所发布的消息在其消息报头中可能具有以下内容:
<psc>
<Command>Publish</Command>
<Topic>root/topicA/topicX</Topic>
</psc>
在本发明的第一实施例中,在消息报头的附加域内提供了附加的‘match_scheme’标签。提供‘match_scheme’域以使发布者能在指定主题域内的主题串时指定他们已经实现的主题分类方案。在该示范实施例中,发布者可以指定多个主题分类方案,并且将通过发布/订阅代理识别该方案,这些方案包括:
‘match_scheme=OR’ 其指示发布者想要把所指定的主题串的各个分离的元
                     素解释成可以用使用布尔OR操作符的匹配算法与订
                     阅相比较的独立的标签(或“关键词”)。
‘match_scheme=AND’其指示发布者想要把所指定的主题串的各个分离的元
                     素解释成可以用使用布尔AND操作符的匹配算法与
                     订阅相比较的独立的标签(或“关键词”)。
‘match_scheme=HI’ 其指示发布者想要把所指定的主题串解释成可以使用
                     分层主题匹配算法与订阅相比较的单个分层主题名
                     称。
发布者可以使用如上所述的在其中用字符“/”分隔元素的传统格式来指定主题串,但是本发明的这种主题串格式对不同的发布者可以是不同的。在‘match_scheme’值内捕获具体发布者的意图。
例如,第一发布者应用程序可以用‘match_scheme=HI’指定“2012_奥林匹克/英国_奥林匹克_团队/帆船”。该发布者的意图是代理和订阅者解释此作为更笼统的类别“2012_奥林匹克”内的类别“英国_奥林匹克_团队”内的主题子类别“帆船”。
第二发布者可能用‘match_scheme=OR’指定相同的主题串“2012奥林匹克/英国_奥林匹克_团队/帆船”,在该情况下,该发布者的意图是可以分别匹配分离的元素“2012_奥林匹克”、“英国_奥林匹克_团队”和“帆船”。也就是,发布者的意图是可以把主题“2012_奥林匹克”、“英国_奥林匹克_团队”和“帆船”的任意一个标识为对于当前应用的匹配。
在另一实施例中,在建立与发布/订阅代理的连接时指定发布者的主题分类方案(‘match_scheme’值)。这在大多数情况下是可接受的,因为发布者的方案不太可能在连续的发布物之间改变,并且确实具有代理不必在接收到每个已发布的消息时动态地解释‘match_scheme’值的优势。
类似地,订户还可以指定多个不同的主题分类方案之一,在本实施例中该方案包括:
‘match_scheme=OR’ 其指示订户意图是,应该把在他们的订阅中所指定的
                     主题串的各个分离的元素解释成可以用使用布尔OR
                     操作符的匹配算法与所接收到的发布物内的主题信息
                     相比较的独立的标签。
‘match_scheme=AND’其指示订户意图是,应该把在他们的订阅中所指定的
                     主题串的各个分离的元素解释成可以用使用布尔
                     AND操作符的匹配算法与所接收到的发布物内的主
                     题信息相比较的独立的标签。
‘match_scheme=HI’ 其指示订户想要把所指定的主题串解释成可以使用分
                     层主题匹配算法与所接收的发布物相比较的单个分层
                     主题名称。
‘match_scheme=PUB’其指示订户希望把他们所指定的主题串与发布者指定
                     的意图一致地解释(即,依据由发布者指定的
                     match_scheme值的“OR”、“AND”或“HI”的
                     match_scheme值)
当建立新连接时(或当接收到新发布物时,如上所述)可以通过发布/订阅代理解释发布者和订户所指定的意图,并且当进行订阅匹配时应用该意图,如下更详细地描述的。如果订户指定了代理不能处理的所要求的‘match_scheme’,那么协商可能随之而来,以使订户能指定与由代理所支持的匹配算法之一相一致的匹配方案——初步检查代理是否能处理第一个由订户指定的match_scheme,然后,如果不能,检查代理是否能处理第二个指定的match_scheme。如果订户的要求确实很重要并且代理不能满足该要求,那么可能拒绝该订阅请求。在一个实施例中,如果需要,代理可以取出或调用远程匹配算法。
如图4所示,根据本发明的优选实施例的发布/订阅消息代理200包括与一组匹配组件220、222、224关联的匹配引擎210和匹配组件选择器230。用于每个已连接的发布者系统的接收器组件260包括通信栈和用于把所接受的消息从所接收的规范字节格式分解(demarshal)成消息代理的内部消息表示的协议处理器模块。有对于每个订户系统的相应的发射器(transmitter),用于把消息汇集成规范的字节格式,以允许消息在网络连接上流通。通信栈能访问用于与外部网络通信的TCP/IP套接字。消息代理200在具体的TCP端口上监听新建立的客户连接。TCP/IP仅是一个示例协议,并且本发明不限于任何具体的通信协议。
当接收到进入的连接请求时,消息代理引导用于该客户的通信栈。该栈负责维持与客户的连接并监视套接字连接的当前状态。通信栈引导协议处理模块,并且协议处理模块处理所接收的消息的格式和通信协议的编码和解码,以便实现可以由消息代理使用的内部目标表示。例如,协议模块将把来自发布者客户的进入消息分解成为目标形式,并将其提交给发布/订阅匹配引擎210,用于与已登记的订阅比较,并且将把其汇集用于传递到订户。另外,当发布者请求与代理连接时,发布者还指定其如上所述的主题分类方案。然后,把用于每个发布者的主题分类方案存储在代理上的表格240中。
订户把他们的订阅请求发送给代理,并且这些订阅请求指定了主题串和主题分类方案两者。把订阅存储在代理上的贮存器250中。对于主题串被指定给其作为分层主题串的每个订阅,把这组分层的主题元素添加到表示所有已登记的订阅的整组分层主题串的主题树中。也就是,把每个订阅的主题串表示为树内的路径(见图1)。除了这些分层的主题串以外,由订户指定的任意非分层的串与列出当前已登记的订户的所有主题分类方案的文件255一起也被存储在贮存器250中。在本实施例中,通过其‘match_scheme’值把订阅索引到贮存器中。
图5示出响应于接收到新的发布物而由发布/订阅代理进行的步骤的序列。接收器组件的协议处理模块把消息分解并把消息传递到发布/订阅匹配引擎210,如上所述。响应于接收280所发布的消息,进行初始检查290,以确定是否有任何当前已登记的订阅。如果该确定是否定的,那么删除消息300。如果确定是肯定的,那么调用310匹配组件选择器230,以确定用于对该发布物进行订阅匹配的合适的匹配组件或一组匹配组件220、222、224。
检查订阅贮存器250中的文件255内的‘match_scheme’列表,以确定320是否有任何当前已登记的订户已经指定了期望的主题‘match_scheme’,并标识方案列表。如果有任何已登记的订户已经指定了依照特定主题分类方案来解释其主题串的要求,那么匹配组件选择器230选择330用于该方案的相应的匹配组件。选择器230选择另外的匹配组件,用于在其中存在当前已登记的订户的每个主题分类方案。
然后,匹配引擎210依次调用340每个已选择的匹配组件,并且对所接收的发布物执行350他们各自的匹配处理。对于每个已选择的匹配组件220、222、224,比较所接收的发布物与已经指定了相应的主题分类方案的每一个订阅(即,具有对应于各自的匹配组件的‘match_scheme’值的每个订阅)。因此,在该实施例中,由每个订户指定的‘match_scheme’优先于任何由发布者指定的‘match_scheme’——发布者的意图不能不考虑明确指定的订户要求。
进行检查360是否存在任何没有指定主题分类方案的已登记的订户或是否存在任何被指定的‘match_scheme=PUB’。如果该确定是肯定的,那么确定370发布者是否已经指定主题分类方案。对于先前已经向代理标识了主题分类方案的发布者,匹配组件选择器从方案表240取出主题分类方案,并且匹配组件选择器230选择330实现与发布者指定的主题分类方案一致的匹配算法的匹配组件。
如果任何一个订户都没有指定‘match_scheme’值,并且发布者也没有指定‘match_scheme’值,那么发布/订阅代理假设将使用默认的主题分类方案,这在本示例实施例中是分层的主题命名方案。匹配引擎调用380用于该主题命名方案的默认匹配组件。该匹配组件执行其匹配处理,以检查390匹配的订阅。
然后,把从执行每个已调用的匹配组件中得到的所标识的订户组与由其他匹配组件所标识的订户组结合400。然后,把消息转发400给匹配订户的集合组。
虽然已经详细地描述了本发明的具体示范实施例,但是本发明不限于该具体实施例,并且本发明包含在随后的权利要求范围内的所有实施例。本领域的技术人员将认识到,在本发明的范围内,可以对所述实施例做出各种改进和修改。

Claims (12)

1.一种用于发布/订阅数据处理系统中的订阅匹配的方法,其中,所述订阅匹配包括比较所接收的发布物内的主题标识符与订户的所存储的订阅内的主题标识符,以确定是否应该把所接收的发布物转发给订户,该方法包括步骤:
从订阅中确定各自的订户希望订阅匹配来实现第一主题分类方案还是第二主题分类方案;以及
响应于所述确定步骤,调用订阅匹配组件来进行实现所述第一主题分类方案和第二主题分类方案中相应一个的订阅匹配处理。
2.根据权利要求1所述的方法,进一步包括:
标识用于一组订户的所要求的主题分类方案组;
对于每个已标识的所要求的主题分类方案组,调用订阅匹配组件来进行实现相应的主题分类方案的订阅匹配处理;以及
集合所述订阅匹配处理的结果,以标识应该把所述发布物转发给的订户的集合组。
3.根据权利要求1或权利要求2所述的方法,其中,所述第一主题分类方案是发布者指定的主题分类方案。
4.根据权利要求3所述的方法,其中,在建立发布者和发布/订阅代理之间的连接期间,给所述发布/订阅代理指定所述发布者指定的主题分类方案。
5.根据权利要求3或权利要求4所述的方法,其中,在发布的消息内指定所述发布者指定的主题分类方案。
6.根据权利要求3到5的任意之一所述的方法,其中,通过在发布的消息内的URI引用所述发布者指定的主题分类方案。
7.根据权利要求3到6的任意之一所述的方法,其中,在不存在用于订阅匹配以实现任何替换的主题分类方案的明确的订户指定的请求的情况下,确定所述订户希望订阅匹配来实现所述发布者指定的主题分类方案。
8.一种发布/订阅代理,用于从至少一个发布者处接收发布物,并将发布物转发给已经登记了对接收发布物的兴趣的订户,所述发布/订阅代理包括:
用于比较在所接收的发布物内的主题标识符与在被存储在所述发布/订阅代理中的订阅内的主题标识符以确定应该把所述发布物转发给哪些订户的装置;
其中,所述用于比较的装置包括一组订阅匹配组件和用于选择所述一组订阅匹配组件中的至少一个的装置,其中,所述用于选择的装置响应于指定所要求的主题分类方案的订户或发布者中的至少一个。
9.根据权利要求8所述的发布/订阅代理,其中,所述用于选择的装置选择对于由订户指定的每个主题分类方案实现相应的主题分类方案的订阅匹配组件。
10.根据权利要求9所述的发布/订阅代理,其中,所述用于选择的装置响应于标识没有指定主题分类方案的订阅而选择实现发布者指定的主题分类方案的订阅匹配组件。
11.一种在发布/订阅通信网络中使用的数据处理系统,所述系统包括:
用于从一个或多个发布者处接收发布物的装置;
用于把发布物发送到一个或多个订户的装置;以及
发布/订阅代理,用于比较在所接收的发布物内的主题标识符与在被存储在发布/订阅代理中的订阅内的主题标识符,以确定应该把哪些发布物发送给哪些订户;
其中,所述发布/订阅代理包括至少两个订阅匹配组件和用于从订阅中确定各个订户想要代理的订阅匹配来实现第一发布者指定的主题分类方案还是第二主题分类方案;以及
其中,所述发布/订阅代理响应于所述确定步骤来调用订阅匹配组件,以进行实现第一主题分类方案和第二主题分类方案中相应一个的订阅匹配处理。
12.一种在发布/订阅通信网络中使用的数据处理系统,所述系统包括:
数据处理单元;
数据存储单元;
网络通信接口;以及
发布/订阅代理,用于从至少一个发布者处接收发布物并将发布物转发给已经登记了对接收发布物的兴趣的订户,其中,所述发布/订阅代理包括:
用于比较在所接收的发布物内的主题标识符与在被存储在所述发布/订阅代理中的订阅内的主题标识符以确定应该把所述发布物转发给哪些订户的装置;
其中,所述用于比较的装置包括一组订阅匹配组件和用于选择所述一组订阅匹配组件中的至少一个的装置,其中,所述用于选择的装置响应于指定所要求的主题分类方案的订户或发布者中的至少一个。
CNA200710186957XA 2006-11-30 2007-11-15 用于订阅匹配的方法和系统 Pending CN101193077A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0623914.9A GB0623914D0 (en) 2006-11-30 2006-11-30 Flexible topic identification in a publish/subscribe system
GB0623914.9 2006-11-30

Publications (1)

Publication Number Publication Date
CN101193077A true CN101193077A (zh) 2008-06-04

Family

ID=37671590

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200710186957XA Pending CN101193077A (zh) 2006-11-30 2007-11-15 用于订阅匹配的方法和系统

Country Status (3)

Country Link
US (1) US20080133541A1 (zh)
CN (1) CN101193077A (zh)
GB (1) GB0623914D0 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158424A (zh) * 2010-02-02 2011-08-17 微软公司 利用发布和订阅机制的消息传输系统
WO2012114284A1 (en) * 2011-02-24 2012-08-30 International Business Machines Corporation Peer-to-peer collaboration of publishers in a publish-subscription environment
CN104804531A (zh) * 2015-04-23 2015-07-29 黎司华 一种环境友好型水溶性复合油墨及其制备方法
CN106933989A (zh) * 2017-02-22 2017-07-07 深圳云视融通科技有限公司 一种网上发布信息系统的方法
WO2017214813A1 (zh) * 2016-06-13 2017-12-21 深圳天珑无线科技有限公司 一种分布式网络的消息回复方法、节点及系统
JP2018124679A (ja) * 2017-01-30 2018-08-09 株式会社オージス総研 サーバ装置、制御システム、コンピュータプログラム及び通信方法
WO2019042110A1 (zh) * 2017-08-29 2019-03-07 华为技术有限公司 一种订阅发布方法及服务器
CN109862063A (zh) * 2018-11-12 2019-06-07 平安科技(深圳)有限公司 基于mqtt的发布订阅匹配方法、装置及存储介质
CN110266801A (zh) * 2019-06-24 2019-09-20 宁波中车时代电气设备有限公司 一种基于订阅发布模型的站台门监控系统及方法
CN110708247A (zh) * 2019-09-27 2020-01-17 浙江大搜车软件技术有限公司 消息路由方法、装置、计算机设备和存储介质
CN111814091A (zh) * 2020-07-17 2020-10-23 北京达佳互联信息技术有限公司 消息分发方法及相关装置
CN112100557A (zh) * 2020-09-01 2020-12-18 上海交通大学 基于内容发布订阅的组合匹配系统与方法

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8375051B2 (en) * 2008-01-21 2013-02-12 International Business Machines Corporation Apparatus for controlling subscriptions
US8429238B2 (en) * 2009-08-25 2013-04-23 International Business Machines Corporation Method for providing feedback to a publisher
US9129263B2 (en) * 2009-12-01 2015-09-08 Yahoo! Inc. System and method for automatically building up topic-specific messaging identities
WO2012055111A1 (en) 2010-10-29 2012-05-03 Nokia Corporation Method and apparatus for distributing published messages
US8756288B2 (en) * 2011-03-11 2014-06-17 International Business Machines Corporation Publish/subscribe message routing
US8935330B2 (en) 2011-05-11 2015-01-13 International Business Machines Corporation Redirecting messages in a publish/subscribe messaging system
US8473419B1 (en) * 2011-09-26 2013-06-25 Google Inc. Dependency resolution in publish/subscribe
US20130159254A1 (en) * 2011-12-14 2013-06-20 Yahoo! Inc. System and methods for providing content via the internet
CN102843420A (zh) * 2012-07-02 2012-12-26 上海交通大学 基于模糊划分的社交网络数据分发系统
US9258263B2 (en) * 2012-11-29 2016-02-09 International Business Machines Corporation Dynamic granular messaging persistence
US9092498B2 (en) 2013-02-21 2015-07-28 International Business Machines Corporation Data distribution system, method and program product
US9888086B1 (en) * 2013-03-15 2018-02-06 Google Llc Providing association recommendations to users
US9946790B1 (en) * 2013-04-24 2018-04-17 Amazon Technologies, Inc. Categorizing items using user created data
CN103324520B (zh) * 2013-06-19 2016-04-06 西北工业大学 一种基于条件合并与共享的订阅方法
GB2520515A (en) * 2013-11-22 2015-05-27 Ibm Publish and subscribe broker with multiple orthogonal topic trees
GB2520972A (en) 2013-12-05 2015-06-10 Ibm Workload management
US10158738B2 (en) * 2014-12-22 2018-12-18 Here Global B.V. Optimal coding method for efficient matching of hierarchical categories in publish-subscribe systems
US9385976B1 (en) * 2015-10-09 2016-07-05 Machine Zone, Inc. Systems and methods for storing message data
WO2018093351A1 (en) * 2016-11-15 2018-05-24 Intel Corporation Neworking internet of things (iot) devices
US10382307B1 (en) * 2016-12-22 2019-08-13 Amazon Technologies, Inc. Transmission of subscription-based messages to Internet of Things (IoT) devices
CN109391500B (zh) 2017-08-11 2021-08-31 华为技术有限公司 一种配置管理方法、装置及设备
US10771570B2 (en) * 2018-10-15 2020-09-08 Citrix Systems, Inc. Scalable message passing architecture a cloud environment
TWI678087B (zh) 2018-11-22 2019-11-21 財團法人工業技術研究院 訊息佇列發佈與訂閱之同步方法及其系統
JP7604140B2 (ja) * 2020-09-10 2024-12-23 東芝テック株式会社 通信装置、プログラム及び通信方法
CN112491795A (zh) * 2020-10-27 2021-03-12 许继集团有限公司 一种边缘物联代理装置的数据打包方法及系统
US11483412B2 (en) * 2020-12-30 2022-10-25 Blackberry Limited Method for marshalling events in a publish-subscribe system
CN112800030B (zh) * 2021-02-08 2024-03-29 中国银联股份有限公司 一种流程的组件数据管理方法、装置及计算机可读存储介质
CN113449234B (zh) * 2021-05-11 2022-10-11 中国人民解放军63729部队 一种数据多级订阅与发布的方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7092914B1 (en) * 1997-11-06 2006-08-15 Intertrust Technologies Corporation Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US7159011B1 (en) * 1999-05-11 2007-01-02 Maquis Techtrix, Llc System and method for managing an online message board
US7359951B2 (en) * 2000-08-08 2008-04-15 Aol Llc, A Delaware Limited Liability Company Displaying search results
US8122118B2 (en) * 2001-12-14 2012-02-21 International Business Machines Corporation Selection of communication protocol for message transfer based on quality of service requirements
US20030126130A1 (en) * 2001-12-31 2003-07-03 Koninklijke Philips Electronics N.V. Sort slider with context intuitive sort keys
US20050080667A1 (en) * 2003-10-08 2005-04-14 Sbc Knowledge Ventures, L.P. System and method for automated customized content delivery for web sites
US7996471B2 (en) * 2004-07-13 2011-08-09 At&T Intellectual Property I, L.P. Electronic message distribution system
US7865457B2 (en) * 2004-08-25 2011-01-04 International Business Machines Corporation Knowledge management system automatically allocating expert resources

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158424A (zh) * 2010-02-02 2011-08-17 微软公司 利用发布和订阅机制的消息传输系统
CN102158424B (zh) * 2010-02-02 2016-06-15 微软技术许可有限责任公司 利用发布和订阅机制的消息传输系统
US9385947B2 (en) 2010-02-02 2016-07-05 Microsoft Technology Licensing, Llc Message transport system using publication and subscription mechanisms
WO2012114284A1 (en) * 2011-02-24 2012-08-30 International Business Machines Corporation Peer-to-peer collaboration of publishers in a publish-subscription environment
US8489694B2 (en) 2011-02-24 2013-07-16 International Business Machines Corporation Peer-to-peer collaboration of publishers in a publish-subscription environment
GB2501656A (en) * 2011-02-24 2013-10-30 Ibm Peer to peer collaboration of publishers in a publish-subscription environment
GB2501656B (en) * 2011-02-24 2014-08-20 Ibm Peer to peer collaboration of publishers in a publish-subscription environment
US9246859B2 (en) 2011-02-24 2016-01-26 International Business Machines Corporation Peer-to-peer collaboration of publishers in a publish-subscription environment
CN104804531A (zh) * 2015-04-23 2015-07-29 黎司华 一种环境友好型水溶性复合油墨及其制备方法
WO2017214813A1 (zh) * 2016-06-13 2017-12-21 深圳天珑无线科技有限公司 一种分布式网络的消息回复方法、节点及系统
JP2018124679A (ja) * 2017-01-30 2018-08-09 株式会社オージス総研 サーバ装置、制御システム、コンピュータプログラム及び通信方法
CN106933989A (zh) * 2017-02-22 2017-07-07 深圳云视融通科技有限公司 一种网上发布信息系统的方法
CN106933989B (zh) * 2017-02-22 2021-01-05 深圳云视融通科技有限公司 一种网上发布信息系统及方法
WO2019042110A1 (zh) * 2017-08-29 2019-03-07 华为技术有限公司 一种订阅发布方法及服务器
CN109862063A (zh) * 2018-11-12 2019-06-07 平安科技(深圳)有限公司 基于mqtt的发布订阅匹配方法、装置及存储介质
CN110266801A (zh) * 2019-06-24 2019-09-20 宁波中车时代电气设备有限公司 一种基于订阅发布模型的站台门监控系统及方法
CN110708247A (zh) * 2019-09-27 2020-01-17 浙江大搜车软件技术有限公司 消息路由方法、装置、计算机设备和存储介质
CN110708247B (zh) * 2019-09-27 2022-03-22 浙江大搜车软件技术有限公司 消息路由方法、装置、计算机设备和存储介质
CN111814091A (zh) * 2020-07-17 2020-10-23 北京达佳互联信息技术有限公司 消息分发方法及相关装置
CN111814091B (zh) * 2020-07-17 2023-11-28 北京达佳互联信息技术有限公司 消息分发方法及相关装置
CN112100557A (zh) * 2020-09-01 2020-12-18 上海交通大学 基于内容发布订阅的组合匹配系统与方法

Also Published As

Publication number Publication date
US20080133541A1 (en) 2008-06-05
GB0623914D0 (en) 2007-01-10

Similar Documents

Publication Publication Date Title
CN101193077A (zh) 用于订阅匹配的方法和系统
US7890572B2 (en) Pub/sub message invoking a subscribers client application program
CN101193078B (zh) 用于管理订阅匹配的方法和系统
CN100483405C (zh) 用于警报传递体系结构的方法和系统
US8195757B2 (en) Method, apparatus and computer program for controlling retention of publications
CN1953426B (zh) 用于管理订阅的发布/订阅系统和方法
US8375094B2 (en) Creating a message readable by a plurality of heterogeneous recipients
US7428597B2 (en) Content-based routing system and method
US7539734B2 (en) Systems for dynamic inter-operability of nodes in service grids
CN101246486A (zh) 用于改进的表达式处理的方法和装置
CN102158424B (zh) 利用发布和订阅机制的消息传输系统
CN102263830B (zh) 便于推送内容的后台处理的装置和相关方法
US20020133633A1 (en) Management of links to data embedded in blocks of data
US20060234623A1 (en) System and method for efficient transfer of applications and data during device swap
US20040068714A1 (en) Exchange infrastructure system and method
WO2021088641A1 (zh) 数据发送方法、处理方法、接收方法及其设备、存储介质
WO2004107216A2 (en) A publish/subscribe mechanism for web services
CN103312684B (zh) 用于优化网络中内容传递的方法和信息处理系统
CN101317416A (zh) 内容路由器
EP2759080A1 (en) Systems and methods for the demand-driven deployment of location-neutral software
CN100407627C (zh) 一种实现端到端文件共享的系统及方法
CN109684450A (zh) 一种基于语义化标识的工业网络数据分发服务系统及方法
EP1506478A2 (en) Exchange infrastructure system and method
CN101764707B (zh) 网络配置事件通知消息的处理方法、转换装置和处理系统
Tarkoma et al. State of the art review of distributed event systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20080604