CN105447032A - 用于处理消息与订阅信息方法和系统 - Google Patents
用于处理消息与订阅信息方法和系统 Download PDFInfo
- Publication number
- CN105447032A CN105447032A CN201410433303.2A CN201410433303A CN105447032A CN 105447032 A CN105447032 A CN 105447032A CN 201410433303 A CN201410433303 A CN 201410433303A CN 105447032 A CN105447032 A CN 105447032A
- Authority
- CN
- China
- Prior art keywords
- predicate
- subscription information
- tree construction
- message
- node
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/56—Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/216—Handling conversation history, e.g. grouping of messages in sessions or threads
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及用于处理消息与订阅信息方法和系统。用于处理订阅信息的方法包括:获取第一订阅信息;将第一订阅信息解析为谓词的第一集合,其中在第一集合中的谓词不重复;基于第一集合中的谓词命中消息的可能性,针对第一集合中的谓词以及第一订阅信息构建一个或多个树结构,其中包括根节点在内的树结构中的内部节点代表谓词,树结构的叶节点代表订阅信息,在树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,每个第一订阅信息对应且仅对应于一个树结构中的一个叶节点,每个第一订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息;以及存储所述一个或多个树结构以用于与消息进行匹配。
Description
技术领域
本发明涉及信息处理。特别地,本发明涉及处理消息与订阅信息方法和系统。更特别地,本发明涉及在物联网中处理消息与订阅信息方法和系统。
背景技术
随着信息技术的发展,网络技术也不断发展。当前,存在着多种类型的网络,例如因特网、物联网、车联网、等等。物联网是新一代信息技术的重要组成部分,特指物物相连的网络。具体地,物联网是指通过各种信息传感设备,如传感器、射频识别(RFID)技术、全球定位系统、红外感应器、激光扫描器、气体感应器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,与互联网结合形成的一个巨大网络。物联网目的是实现物与物、物与人、所有的物品与网络的连接,以方便识别、管理和控制。
图1示出了物联网的架构示意图,其中物联网包括应用、应用基础架构(ApplicationInfrastructure)、广域网(WideAreaNetwork)、接入网络(AccessNetwork)和传感网络(SensorNetwork),传感网络由多个传感器设备构成,传感器设备从外界收集数据信息,通过广域网传输到应用基础架构。应用基础架构包括信息数据库和应用网关(Applicationgateway)。信息数据库用于存储所获得的信息,应用网关(applicationgateway)用于数据的过滤和分发(发布(publish))。应用可以向应用网关发出请求以获取其需要的信息,即订阅(subscribe)。这就是所谓的发布/订阅模式(pub/sub模式)。
目前的发布/订阅主要包括基于主题(Topic)的发布/订阅以及基于内容的发布/订阅。在基于主题的发布/订阅中,消息被发布到主题或命名通道上。订阅者将收到其订阅的主题上的所有消息,并且所有订阅同一主题的订阅者将接收到同样的消息。在基于内容的系统中,订阅者定义订阅信息,即其感兴趣的消息的条件(规则),只有当消息的属性或内容满足订阅者定义的条件(规则)时,消息才会被投递到该订阅者。由于基于内容的发布/订阅比基于主题的更加灵活,因此基于内容的发布/订阅被广泛地应用于物联网领域。
由于物联网中的数据量非常大,而且每一条数据都要进行规则集合的匹配,这对应用网关中的订阅信息及消息的处理提出了很高的要求。此外,本领域技术人员能够理解,对于其它类型的网络(例如因特网等),也同样存在着发布/订阅机制。由于网络中的数据量越来越大,对于在这些网络中的订阅信息和消息的处理也提出了越来越高的要求。
在基于内容的发布/订阅中,订阅信息中的规则可以分解成谓词的组合。所谓谓词即为规则的最小可分组成单元。例如,可以定义如下的订阅信息:
(Pressure>30)&(Status=“stable”)
其中订阅信息中的规则是由两条谓词构成的谓词集合,其中两条谓词分别是:
谓词1:Pressure>30(表示压力大于30);
谓词2:Status=“stable”(表示状态为“稳定的”)。
而满足以上两条谓词的所有消息会被分配到特定的消息队列中。
例如,对于物联网,为了处理消息与订阅信息,在现有技术中提出了一种称为“测试网”的方法(例如,参见G.Li,S.Hou,andH.A.Jacobsen,Aunifiedapproachtorouting,coveringandmerginginpublish/subscribesystemsbasedonmodifiedbinarydecisiondiagrams.Proceedingsofthe25thIEEEInternationalConferenceonDistributedComputingSystems(ICSCS’05))。图2示出了现有技术的“测试网”方法的基本原理。在该方法中,将谓词以及订阅信息编译成测试网,即树结构。树结构中的内部节点(例如,test1、test2、test3)存储要被测试的谓词,而树结构的叶节点(例如sub1、sub2)表示订阅信息。在测试网方法中,每个订阅信息通过一个或多个叶节点来表示,并且对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息。对于物联网中的消息,从树结构的根部起开始评估,并且遍历所有内部节点,以找到匹配的内部节点,从而获得匹配的订阅信息。
然而,该方法会消耗大量的存储空间,并且在插入新的订阅信息或更新订阅信息时会非常复杂,并且花费大量的成本,该方法并不适于订阅信息快速变化的情况。然而,在物联网领域,应用或移动用户会动态地提交大量不同的订阅信息,因而该方法很难适应物联网技术的发展。
此外,例如,对于物联网,在现有技术中还提出了一种称为“两阶段”的方法(例如,参见YanleiDiao;Fischer,P.;Franklin,M.J.;To,R.;YFilter:Efficientandscalablefilteringofxmldocuments,Proceedings.18thInternationalConferenceonDataEngineering,2002.)。图3示出了现有技术的“两阶段”方法的基本原理。在该方法中,首先将来自用户的订阅信息分解成谓词集合,去除重复的谓词。然后,在第一阶段,对于每一个输入的消息,基于谓词集合中的每一个谓词顺序地对消息进行评估,生成该消息的谓词结果向量。谓词结果向量中的每一位分别对应于谓词集合中的相应的一个谓词。如果所述消息命中谓词(即满足该谓词),则在该谓词结果向量中的对应位的值取一,反之则取零。接下来,在第二阶段,针对所述谓词结果向量逐一地检查每个订阅信息,即遍历所有的订阅信息,以获得匹配的订阅信息列表。在遍历过程中,对于一个订阅信息,如果该订阅信息中的所有谓词在消息的谓词结果向量中的对应位的值均为1,则表示消息满足该订阅信息中的所有谓词,即消息与该订阅信息匹配。
“两阶段”方法能够减少谓词评估的时间,并共享谓词评估的结果。然而,如果存在大量的基于内容的订阅信息,由于需要评估的订阅信息的数量大,系统的性能以及吞吐量将显著地下降。随着系统吞吐量的显著下降,将出现消息队列堵塞、消息队列堆积等现象,物联网中的传感器无法根据其需要快速地发送数据。
因此,需要有效地处理消息与订阅信息方法和系统(例如,在物联网中)以解决现有技术中的上述问题。
发明内容
本发明的发明人提出了解决现有技术中的至少一个问题的一种新技术。
根据本发明的一个方面,提供一种用于处理订阅信息的方法,包括:获取一条或多条第一订阅信息;将所述一条或多条第一订阅信息解析为谓词的第一集合,其中在所述第一集合中的谓词不重复;基于所述第一集合中的谓词命中消息的可能性,针对所述第一集合中的谓词以及所述第一订阅信息构建一个或多个树结构,其中包括根节点在内的所述树结构中的内部节点代表谓词,所述树结构的叶节点代表所述订阅信息,在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,每个第一订阅信息对应且仅对应于一个树结构中的一个叶节点,每个第一订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息;以及存储所述一个或多个树结构以用于与消息进行匹配。
根据本发明的另一方面,提供一种将消息与订阅信息匹配的方法,包括:获取与订阅信息相关联的树结构,其中所述订阅信息被解析为谓词集合,在所述谓词集合中的谓词不重复,所述树结构是基于谓词集合中的谓词命中消息的可能性针对所述谓词集合中的谓词以及所述订阅信息来构建的,包括根节点在内的所述树结构中的内部节点代表谓词,所述树结构的叶节点代表所述订阅信息,在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,每个订阅信息对应且仅对应于一个树结构中的一个叶节点,每个订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息;获取消息;基于所述谓词集合评估所述消息,以获得谓词结果向量,所述谓词结果向量中的每一元素分别对应于谓词集合中的相应的一个谓词;以及对于所述谓词结果向量中的每一元素遍历树结构,以获得与所述消息匹配的订阅信息。
根据本发明的又一方面,提供一种处理消息与订阅信息的方法,包括:获取消息;动态地选择订阅信息优先模式以及谓词优先模式,以获得与所述消息匹配的订阅信息,其中在所述订阅信息优先模式中:获取订阅信息;将所述订阅信息解析为谓词集合,其中在所述集合中的谓词不重复;基于所生成的谓词集合评估所述消息,以获得谓词结果向量,所述谓词结果向量中的每一元素分别对应于谓词集合中的相应的一个谓词;以及针对所述谓词结果向量逐一地检查每个订阅信息,以获得与所述消息匹配的订阅信息;以及在所述谓词优先模式中,利用上述方法将消息与订阅信息匹配。根据本发明的又一方面,提供一种用于处理订阅信息的系统,包括:订阅信息获取单元,被配置为获取一条或多条第一订阅信息;解析单元,被配置为将所述一条或多条第一订阅信息解析为谓词的第一集合,其中在所述第一集合中的谓词不重复;树结构创建单元,被配置为基于所述第一集合中的谓词命中消息的可能性,针对所述第一集合中的谓词以及所述第一订阅信息构建一个或多个树结构,其中包括根节点在内的所述树结构中的内部节点代表谓词,所述树结构的叶节点代表所述订阅信息,在所述树结构中下一级内部节点的谓词命中可能性高于上一级内部节点的可能性,每个第一订阅信息对应且仅对应于一个树结构中的一个叶节点,每个第一订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息;以及存储单元,被配置为存储所述一个或多个树结构以用于与消息进行匹配。
根据本发明的又一方面,提供一种用于将消息与订阅信息匹配的系统,包括:树结构获取单元,被配置为获取与订阅信息相关联的树结构,其中所述订阅信息被解析为谓词集合,在所述谓词集合中的谓词不重复,所述树结构是基于谓词集合中的谓词命中消息的可能性针对所述谓词集合中的谓词以及所述订阅信息来构建的,包括根节点在内的所述树结构中的内部节点代表谓词,所述树结构的叶节点代表所述订阅信息,在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,每个订阅信息对应且仅对应于一个树结构中的一个叶节点,每个订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息;消息获取单元,被配置为获取消息;谓词结果向量生成单元,被配置为基于所述谓词集合评估所述消息,以获得谓词结果向量,所述谓词结果向量中的每一元素分别对应于谓词集合中的相应的一个谓词;以及订阅信息匹配单元,被配置为对于所述谓词结果向量中的每一元素遍历树结构,以获得与所述消息匹配的订阅信息。
根据本发明的又一方面,提供一种用于处理消息与订阅信息的系统,包括:消息获取单元,被配置为获取消息;上述用于将消息与订阅信息匹配的系统;订阅信息优先处理装置,其包括:订阅信息获取单元,被配置为获取订阅信息;解析单元,被配置为将所述订阅信息解析为谓词集合,其中在所述集合中的谓词不重复;谓词结果向量生成单元,被配置为基于所生成的谓词集合评估所述消息,以获得谓词结果向量,所述谓词结果向量中的每一元素分别对应于谓词集合中的相应的一个谓词;以及订阅信息匹配单元,被配置为针对所述谓词结果向量逐一地检查每个订阅信息,以获得与所述消息匹配的订阅信息;以及调度器,被配置为动态地选择所述订阅信息优先处理装置以及上述用于将消息与订阅信息匹配的系统,以获得与所述消息匹配的订阅信息。
通过以下参照附图对本发明的示例性实施方式的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了物联网的架构示意图。
图2示出了现有技术的“测试网”方法的基本原理。
图3示出了现有技术的“两阶段”方法的基本原理。
图4示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图5示出了根据本发明的实施方式用于处理订阅信息的方法的流程图。
图6示出了根据本发明的实施方式的示例性树结构。
图7示出了根据本发明的实施方式用于处理订阅信息的方法的流程图。
图8示出了根据本发明的实施方式用于将消息与订阅信息匹配的方法的流程图。
图9示出了根据本发明的实施方式将消息与订阅信息匹配的方法的示意图。
图10示出了根据本发明的实施方式用于处理消息与订阅信息的方法的流程图。
图11示出了根据本发明的实施方式用于处理订阅信息的系统5000的功能性框图。
图12示出了根据本发明的实施方式用于将消息与订阅信息匹配的系统6000的功能性框图。
图13示出了根据本发明的实施方式用于处理消息与订阅信息的系统7000的功能性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图4示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图4显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施方式的功能和使用范围带来任何限制。
如图4所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施方式的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施方式中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
下面参照附图说明本发明的实施方式以及例子。在对实施方式和例子的描述中,重复的部分可能会被省略。
图5示出了根据本发明的实施方式用于处理订阅信息的方法的流程图。作为示例,该方法可以应用于物联网中。
首先,在步骤1100中,一条或多条第一订阅信息被获取。
接下来,在步骤1200,所述一条或多条第一订阅信息被解析为谓词的第一集合,其中在所述第一集合中的谓词不重复,即将重复的谓词删除。
接下来,在步骤1300,基于所述第一集合中的谓词命中消息的可能性,针对所述第一集合中的谓词以及所述第一订阅信息构建一个或多个树结构,其中包括根节点在内的所述树结构中的内部节点代表谓词,所述树结构的叶节点代表所述订阅信息,在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,每个第一订阅信息对应且仅对应于一个树结构中的一个叶节点,每个第一订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息。本领域技术人员能够理解,如果该方法在物联网中执行,则所述消息为物联网中的消息。
谓词命中消息的可能性是指消息满足谓词(即,满足与谓词相关的规则)的可能性。这种可能性是系统根据统计数据获得的。
在根据本发明的方法中,树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,因此树结构的根节点的谓词是最没有可能与消息匹配的谓词。
返回参照图5,接下来,在步骤1400中,存储所述一个或多个树结构以用于与消息进行匹配。
图6示出了根据本发明的实施方式的示例性树结构。在该示例中,所获得的订阅信息及订阅信息所包含的谓词如表1所示。
订阅信息 | 谓词 |
Sub0 | Pre0&Pre1&Pre3 |
Sub1 | Pre0&Pre1 |
Sub2 | Pre0&Pre3 |
Sub3 | Pre1&Pre3 |
Sub4 | Pre0&Pre1&Pre2 |
Sub5 | Pre0&Pre2&Pre3 |
表1订阅信息及订阅信息所包含的谓词
即,在该示例中一共获得六个订阅信息,即Sub0、Sub1、…、Sub6。而这六个订阅信息可以被解析为包含四个不重复的谓词的集合,这四个不重复的谓词分别为Pre0、Pre1、Pre2和Pre3。在表2中,示出了这四个谓词Pre0、Pre1、Pre2和Pre3命中消息的可能性。
谓词 | 谓词命中消息的可能性 |
Pre0 | 20% |
Pre1 | 30% |
Pre2 | 10% |
Pre3 | 40% |
表2谓词命中消息的可能性
根据本发明的方法所生成的树结构在图6中示出。从图6中可以看出,树结构中的内部节点代表谓词,树结构的叶节点代表订阅信息,而每个订阅信息对应且仅对应于一个树结构中的一个叶节点。由于树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,例如对于谓词Pre0(其命中消息的可能性为20%),其下一级内部节点只可能是命中消息的可能性高于其的Pre1(30%)和Pre3(40%),而不可能是命中消息的可能性低于其的Pre2(10%)。
从图6中还可以看出,每个订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息。例如,对于Sub0,其对应于分支1中的所有谓词Pre0、Pre1和Pre3。对于Sub5,其对应于分支2中的所有谓词Pre2、Pre0和Pre3。
此外,本领域技术人员能够理解,如果两个谓词命中消息的可能性相同,则可以按照这两个谓词编号的顺序进行排序,只要确保每个订阅信息对应且仅对应于一个树结构中的一个叶节点即可。由于下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,并且每个订阅信息对应且仅对应于一个树结构中的一个叶节点,因此对于同样的一组订阅信息和谓词,所获得的树结构是唯一的。通过上述方法,能够创建订阅信息的树结构,并且因为每个订阅信息对应且仅对应于一个树结构中的一个叶节点,因此系统所消耗的存储空间较小。
图7示出了根据本发明的实施方式用于处理订阅信息的方法的流程图。通过该实施方式,能够方便地向已有的订阅信息和谓词的树结构插入新的订阅信息。
如图7所示,在步骤2100,可以获取一条或多条第二订阅信息。接下来,在步骤2200,将所述第二订阅信息解析为谓词的第二集合。接下来,在步骤2300,基于所述第一集合和所述第二集合中的谓词命中消息的可能性,将所述第二集合中的谓词和所述第二订阅信息插入所述树结构中,使得在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,所述第二订阅信息对应且仅对应于一个树结构中的一个叶节点,并且所述第二订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息。
在一种实施方式中,如果谓词的第二集合中的谓词在谓词的第一集合中不存在,则在树结构中创建新的内部节点,并将第二集合中的谓词加入到第一集合中。当下一次获得新的订阅信息时,则以更新后的谓词的第一集合作为谓词的第一集合进行操作。如果谓词的第二集合中的一个谓词在谓词的第一集合中已经存在,则不在树结构中创建新的内部节点。
在一种实施方式中,订阅信息被解析为析取范式(DNF)形式的谓词的集合。析取范式是逻辑公式的标准化(或规范化),它是合取子句的析取。一个逻辑公式被认为是析取范式的,当且仅当它是一个或多个文字的一个或多个合取的析取,DNF中的命题算子是与、或和非,例如下列公式都是析取范式:(A∩B)∪C,A∪B。通过将订阅信息转化为析取范式的表示形式,使得订阅新型能够被表示为以逻辑与操作连接的多个谓词的并集,便于后面描述的将消息与订阅信息匹配的处理。
图8示出了根据本发明的实施方式用于将消息与订阅信息匹配的方法的流程图。
如图8所示,首先在步骤3100,获取与订阅信息相关联的树结构,其中所述订阅信息被解析为谓词集合,在所述谓词集合中的谓词不重复,所述树结构是基于谓词集合中的谓词命中消息的可能性针对所述谓词集合中的谓词以及所述订阅信息来构建的,包括根节点在内的所述树结构中的内部节点代表谓词,所述树结构的叶节点代表所述订阅信息,在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,每个订阅信息对应且仅对应于一个树结构中的一个叶节点,每个订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息。
接下来,在步骤3200,获取消息。在一种实施方式中,该方法可以在物联网中使用,所述消息可以是物联网中的消息。
接下来,在步骤3300,基于所生成的谓词集合评估所述消息,以获得谓词结果向量,所述谓词结果向量中的每一元素分别对应于谓词集合中的相应的一个谓词。步骤3300中的处理,类似于现有技术中的“两阶段”方法中的第一阶段的处理。如果所述消息命中谓词(即满足该谓词),则例如在该谓词结果向量中的对应位的值取一,反之则取零。本领域技术人员能够理解,可以选择其它的值或表示方式来表示消息命中谓词或未命中谓词。
接下来,在步骤3400,对于所述谓词结果向量中的每一元素遍历树结构,以获得与所述消息匹配的订阅信息。在现有技术的“两阶段”方法的第二阶段中,对所有的订阅信息进行遍历。而在本发明的方法中,对于所述谓词结果向量中的每一元素来检查所生成的树结构,即对所述谓词结果向量中的所有元素进行遍历。
采用本发明的方法,基于前面所述的树结构,对所有谓词进行遍历,而不是对所有订阅信息进行遍历,由于在大多情况下,谓词的数目不会随着订阅信息的数目显著增加,因此在存在大量订阅信息的情况下,其运算速度高于现有技术中的“两阶段”方法。
在一种实施方式中,对于所述谓词结果向量中的每一元素遍历树结构以获得与所述消息匹配的订阅信息还可以包括:如果谓词结果向量中的一个元素表示所述消息命中该谓词,则选择与该元素对应的谓词为根节点的树结构,对该树结构进行先根遍历,评估每个叶节点以获得与所述消息匹配的订阅信息。返回参照图6,在图6所示的树结构中,先根遍历是指从树结构的根节点开始,按从上到下、从左到右的顺序进行的遍历。
图9示出了根据本发明的实施方式将消息与订阅信息匹配的方法的示意图。在该示例中,仍然采用图6所示的示例性树结构。在该树结构中包括六个订阅信息Sub0、Sub1、…、Sub6,而所获得的谓词集合包含谓词Pre0、Pre1、Pre2和Pre3。谓词结果向量的第1、2、3、4位(从左到右)分别对应于谓词Pre0、Pre1、Pre2和Pre3。假定所获得的消息的谓词结果向量为1101。谓词结果向量的第1、2、4位(从左到右)的值为“1”,表示该消息命中谓词Pre0、Pre1、Pre3。谓词结果向量的第3位(从左到右)的值为“0”,表示该消息没有命中谓词Pre2。
对于谓词结果向量的第一位,由于该位的值为1,表示消息命中谓词Pre0,则选择谓词Pre0为根节点的树结构,对该树结构进行先根遍历,评估每个叶节点,从而可以确定订阅信息Sub1、Sub0和Sub2与消息匹配。
类似地,对于谓词结果向量的第二位,重复执行上述操作,可确定订阅信息Sub3与该消息匹配。
对于谓词结果向量的第三位,由于该位的值为0,表示消息未命中谓词Pre2,则不检查以Pre2为根节点的树结构。
对于谓词结果向量的第四位,虽然该位的值为1,表示消息命中谓词Pre3,但在以谓词Pre3为根节点的树结构下并不存在叶结构,因此也不会从该树结构下确定出与消息匹配的订阅信息。
通过上述操作,可以确定出与所获得的消息匹配的订阅信息为Sub1、Sub0、Sub2和Sub3。
此外,在一种实施方式中,对于所述谓词结果向量中的每一元素遍历树结构以获得与所述消息匹配的订阅信息还可以包括:如果所述树结构中的一个内部节点所代表的谓词在所述谓词结果向量中的元素表示所述消息未命中该谓词,则不遍历该内部节点所在分支的后续节点。
例如,对于图6所示的示例性树结构,如果所获得的消息的谓词结果向量为1001,对于谓词向量的第一位,在分支1上,存在谓词Pre0、Pre1和Pre3。由于Pre1在谓词结果向量中的相应的位的取值为零,表示消息未命中谓词Pre1,因此就可以不遍历分支1上内部节点的后续内部节点。通过这种操作,可以大大减少运算量,从而提高运算速度。
图10示出了根据本发明的实施方式用于处理消息与订阅信息的方法的流程图。
如图10所示,在步骤4100中,获取消息。在一种实施方式中,该方法可以在物联网中使用,所述消息可以是物联网中的消息。接下来,在步骤4200中,动态地选择订阅信息优先模式以及谓词优先模式,以获得与所述消息匹配的订阅信息,其中在所述订阅信息优先模式中:获取订阅信息;将所述订阅信息解析为谓词集合,其中在所述集合中的谓词不重复;基于所生成的谓词集合评估所述消息,以获得谓词结果向量,所述谓词结果向量中的每一元素分别对应于谓词集合中的相应的一个谓词;以及针对所述谓词结果向量逐一地检查每个订阅信息,以获得与所述消息匹配的订阅信息;以及在所述谓词优先模式中,利用上述根据本发明的方法将消息与订阅信息匹配。
由于订阅信息优先模式对于订阅信息的数量较少的情况下性能优异,而谓词优先模式在订阅信息的数量较多的情况下性能优异,因此在一种实施方式中,当所述订阅信息的数量大于预定阈值时,选择所述谓词优先模式。本领域技术人员能够理解,所述预定阈值可以根据经验或者试验来确定。
在一种实施方式中,可以根据消息所在队列的状态来动态地选择订阅信息优先模式以及谓词优先模式。由于在各种网络(例如,物联网)中,消息是不断地获得的,并且以先入先出的方式进行处理,因此在消息队列中的消息的数量会根据处理模式的不同而发生变化。所述队列的状态可以包括消息队列堵塞情况、消息队列堆积情况等。根据本发明的方法,如果一张操作模式使得消息队列的状态恶化,则可以选择另一种操作模式进行操作。
图11示出了根据本发明的实施方式用于处理订阅信息的系统5000的功能性框图。该系统5000的所有功能模块(即,该系统5000所包括的各种单元,无论是在图中示出的,或图中没有示出的)都可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员能够理解,图11中所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
如图11所示,根据本发明的一个方面,用于处理订阅信息的系统5000可以包括:订阅信息获取单元5100、解析单元5200、树结构创建单元5300以及存储单元5400。所述订阅信息获取单元5100可以被配置为获取一条或多条第一订阅信息。所述解析单元5200可以被配置为将所述一条或多条第一订阅信息解析为谓词的第一集合,其中在所述第一集合中的谓词不重复。所述树结构创建单元5300可以被配置为基于所述第一集合中的谓词命中消息的可能性,针对所述第一集合中的谓词以及所述第一订阅信息构建一个或多个树结构,其中包括根节点在内的所述树结构中的内部节点代表谓词,所述树结构的叶节点代表所述订阅信息,在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,每个第一订阅信息对应且仅对应于一个树结构中的一个叶节点,每个第一订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息。所述存储单元5400可以被配置为存储所述一个或多个树结构以用于与消息进行匹配
在一种实施方式中,所述订阅信息获取单元5100可以被进一步配置为获取第二订阅信息。所述解析单元5200可以被进一步配置为将所述第二订阅信息解析为谓词的第二集合。所述系统5000还可以包括树结构更新单元5500,所述树结构更新单元5500可以被配置为基于所述第一集合和所述第二集合中的谓词命中消息的可能性,将所述第二集合中的谓词和所述第二订阅信息插入所述树结构中,使得在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,所述第二订阅信息对应且仅对应于一个树结构中的一个叶节点,并且所述第二订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息。
在一种实施方式中,如果谓词的第二集合中的谓词在谓词的第一集合中不存在,则可以在树结构中创建新的内部节点,并将第二集合中的谓词加入到第一集合中。在一种实施方式中,如果谓词的第二集合中的一个谓词在谓词的第一集合中已经存在,则可以不在树结构中创建新的内部节点。
在一种实施方式中,可以将所述订阅信息解析为析取范式形式的谓词的集合。
图12示出了根据本发明的实施方式用于将消息与订阅信息匹配的系统6000的功能性框图。该系统6000的所有功能模块(即,该系统6000所包括的各种单元,无论是在图中示出的,或图中没有示出的)都可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员能够理解,图12中所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
如图12所示,根据本发明的一个方面,用于将消息与订阅信息匹配的系统6000可以包括:树结构获取单元6100、消息获取单元6200、谓词结果向量生成单元6300以及订阅信息匹配单元6400。所述树结构获取单元6100被配置为获取与订阅信息相关联的树结构,其中所述订阅信息被解析为谓词集合,在所述谓词集合中的谓词不重复,所述树结构是基于谓词集合中的谓词命中消息的可能性针对所述谓词集合中的谓词以及所述订阅信息来构建的,包括根节点在内的所述树结构中的内部节点代表谓词,所述树结构的叶节点代表所述订阅信息,在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,每个订阅信息对应且仅对应于一个树结构中的一个叶节点,每个订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息。所述消息获取单元6200可以被配置为获取物联网中的消息。所述谓词结果向量生成单元6300可以被配置为基于所生成的谓词集合评估所述消息,以获得谓词结果向量,所述谓词结果向量中的每一元素分别对应于谓词集合中的相应的一个谓词。所述订阅信息匹配单元6400可以被配置为对于所述谓词结果向量中的每一元素遍历树结构,以获得与所述消息匹配的订阅信息。
在一种实施方式中,所述订阅信息匹配单元6400还可以被配置为:如果谓词结果向量中的一个元素表示所述消息命中该谓词,则选择与该元素对应的谓词为根节点的树结构,对该树结构进行先根遍历,评估每个叶节点以获得与所述消息匹配的订阅信息。
在一种实施方式中,所述订阅信息匹配单元6400还可以被配置为:如果所述树结构中的一个内部节点所代表的谓词在所述谓词结果向量中的元素表示所述消息未命中该谓词,则不遍历该内部节点所在分支的后续节点。
图13示出了根据本发明的实施方式用于处理消息与订阅信息的系统7000的功能性框图。该系统7000的所有功能模块(即,该系统7000所包括的各种单元,无论是在图中示出的,或图中没有示出的)都可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员能够理解,图13中所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
如图13所示,根据本发明的一个方面,所述用于处理消息与订阅信息的系统7000可以包括:消息获取单元7100、上述用于将消息与订阅信息匹配的系统6000、订阅信息优先处理装置7200以及调度器7300。所述消息获取单元7100可以被配置为获取消息。所述订阅信息优先处理装置7200可以包括:订阅信息获取单元7210,被配置为获取订阅信息;解析单元7220,被配置为将所述订阅信息解析为谓词集合,其中在所述集合中的谓词不重复;谓词结果向量生成单元7230,被配置为基于所生成的谓词集合评估所述消息,以获得谓词结果向量,所述谓词结果向量中的每一元素分别对应于谓词集合中的相应的一个谓词;以及订阅信息匹配单元7240,被配置为针对所述谓词结果向量逐一地检查每个订阅信息,以获得与所述消息匹配的订阅信息。所述调度器7300可以被配置为动态地选择所述订阅信息优先处理装置7300以及所述用于将消息与订阅信息匹配的系统6000,以获得与所述消息匹配的订阅信息。
在一种实施方式中,当所述订阅信息的数量大于预定阈值时,所述调度器7300可以选择上述用于将消息与订阅信息匹配的系统6000,以获得与所述消息匹配的订阅信息。
在一种实施方式中,所述调度器7300可以根据消息所在队列的状态来动态地选择订阅信息优先处理装置7200以及上述用于将消息与订阅信息匹配的系统6000,以获得与所述消息匹配的订阅信息。
本领域技术人员能够理解,本发明不仅可以适用于物联网,而且还可以应用于各种其它类型的网络,例如因特网、车联网等等。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施方式中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施方式。
Claims (20)
1.一种用于处理订阅信息的方法,包括:
获取一条或多条第一订阅信息;
将所述一条或多条第一订阅信息解析为谓词的第一集合,其中在所述第一集合中的谓词不重复;
基于所述第一集合中的谓词命中消息的可能性,针对所述第一集合中的谓词以及所述第一订阅信息构建一个或多个树结构,其中包括根节点在内的所述树结构中的内部节点代表谓词,所述树结构的叶节点代表所述订阅信息,在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,每个第一订阅信息对应且仅对应于一个树结构中的一个叶节点,每个第一订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息;以及
存储所述一个或多个树结构以用于与消息进行匹配。
2.如权利要求1所述的方法,还包括:
获取第二订阅信息;
将所述第二订阅信息解析为谓词的第二集合;以及
基于所述第一集合和所述第二集合中的谓词命中消息的可能性,将所述第二集合中的谓词和所述第二订阅信息插入所述树结构中,使得在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,所述第二订阅信息对应且仅对应于一个树结构中的一个叶节点,并且所述第二订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息。
3.如权利要求2所述的方法,其中
如果谓词的第二集合中的谓词在谓词的第一集合中不存在,则在树结构中创建新的内部节点,并将第二集合中的谓词加入到第一集合中。
4.如权利要求1或2所述的方法,其中将所述订阅信息解析为析取范式形式的谓词的集合。
5.一种将消息与订阅信息匹配的方法,包括:
获取与订阅信息相关联的树结构,其中所述订阅信息被解析为谓词集合,在所述谓词集合中的谓词不重复,所述树结构是基于谓词集合中的谓词命中消息的可能性针对所述谓词集合中的谓词以及所述订阅信息来构建的,包括根节点在内的所述树结构中的内部节点代表谓词,所述树结构的叶节点代表所述订阅信息,在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,每个订阅信息对应且仅对应于一个树结构中的一个叶节点,每个订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息;
获取消息;
基于所述谓词集合评估所述消息,以获得谓词结果向量,所述谓词结果向量中的每一元素分别对应于谓词集合中的相应的一个谓词;以及
对于所述谓词结果向量中的每一元素遍历树结构,以获得与所述消息匹配的订阅信息。
6.如权利要求5所述的方法,其中对于所述谓词结果向量中的每一元素遍历树结构以获得与所述消息匹配的订阅信息还包括:
如果谓词结果向量中的一个元素表示所述消息命中该谓词,则选择与该元素对应的谓词为根节点的树结构,对该树结构进行先根遍历,评估每个叶节点以获得与所述消息匹配的订阅信息。
7.如权利要求6所述的方法,其中对于所述谓词结果向量中的每一元素遍历树结构以获得与所述消息匹配的订阅信息还包括:如果所述树结构中的一个内部节点所代表的谓词在所述谓词结果向量中的元素表示所述消息未命中该谓词,则不遍历该内部节点所在分支的后续节点。
8.一种处理消息与订阅信息的方法,包括:
获取消息;
动态地选择订阅信息优先模式以及谓词优先模式,以获得与所述消息匹配的订阅信息,其中
在所述订阅信息优先模式中:
获取订阅信息;
将所述订阅信息解析为谓词集合,其中在所述集合中的谓词不重复;
基于所生成的谓词集合评估所述消息,以获得谓词结果向量,所述谓词结果向量中的每一元素分别对应于谓词集合中的相应的一个谓词;以及
针对所述谓词结果向量逐一地检查每个订阅信息,以获得与所述消息匹配的订阅信息;以及
在所述谓词优先模式中,利用权利要求5-7中任一项所述的方法将消息与订阅信息匹配。
9.如权利要求8所述的方法,其中当所述订阅信息的数量大于预定阈值时,选择所述谓词优先模式。
10.如权利要求8所述的方法,其中根据消息所在队列的状态来动态地选择订阅信息优先模式以及谓词优先模式。
11.一种用于处理订阅信息的系统,包括:
订阅信息获取单元,被配置为获取一条或多条第一订阅信息;
解析单元,被配置为将所述一条或多条第一订阅信息解析为谓词的第一集合,其中在所述第一集合中的谓词不重复;
树结构创建单元,被配置为基于所述第一集合中的谓词命中消息的可能性,针对所述第一集合中的谓词以及所述第一订阅信息构建一个或多个树结构,其中包括根节点在内的所述树结构中的内部节点代表谓词,所述树结构的叶节点代表所述订阅信息,在所述树结构中下一级内部节点的谓词命中可能性高于上一级内部节点的可能性,每个第一订阅信息对应且仅对应于一个树结构中的一个叶节点,每个第一订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息;以及
存储单元,被配置为存储所述一个或多个树结构以用于与消息进行匹配。
12.如权利要求11所述的系统,其中:
所述订阅信息获取单元被进一步配置为获取第二订阅信息;
所述解析单元被进一步配置为将所述第二订阅信息解析为谓词的第二集合;以及
所述系统还包括树结构更新单元,所述树结构更新单元被配置为基于所述第一集合和所述第二集合中的谓词命中消息的可能性,将所述第二集合中的谓词和所述第二订阅信息插入所述树结构中,使得在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,所述第二订阅信息对应且仅对应于一个树结构中的一个叶节点,并且所述第二订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息。
13.如权利要求12所述的系统,其中
如果谓词的第二集合中的谓词在谓词的第一集合中不存在,则在树结构中创建新的内部节点,并将第二集合中的谓词加入到第一集合中。
14.如权利要求11或12所述的系统,其中将所述订阅信息解析为析取范式形式的谓词的集合。
15.一种用于将消息与订阅信息匹配的系统,包括:
树结构获取单元,被配置为获取与订阅信息相关联的树结构,其中所述订阅信息被解析为谓词集合,在所述谓词集合中的谓词不重复,所述树结构是基于谓词集合中的谓词命中消息的可能性针对所述谓词集合中的谓词以及所述订阅信息来构建的,包括根节点在内的所述树结构中的内部节点代表谓词,所述树结构的叶节点代表所述订阅信息,在所述树结构中下一级内部节点的谓词命中消息的可能性高于上一级内部节点的可能性,每个订阅信息对应且仅对应于一个树结构中的一个叶节点,每个订阅信息对应于在其树结构中该叶节点的分支从根节点起的所有谓词信息;
消息获取单元,被配置为获取消息;
谓词结果向量生成单元,被配置为基于所述谓词集合评估所述消息,以获得谓词结果向量,所述谓词结果向量中的每一元素分别对应于谓词集合中的相应的一个谓词;以及
订阅信息匹配单元,被配置为对于所述谓词结果向量中的每一元素遍历树结构,以获得与所述消息匹配的订阅信息。
16.如权利要求15所述的系统,其中所述订阅信息匹配单元还被配置为:
如果谓词结果向量中的一个元素表示所述消息命中该谓词,则选择与该元素对应的谓词为根节点的树结构,对该树结构进行先根遍历,评估每个叶节点以获得与所述消息匹配的订阅信息。
17.如权利要求16所述的系统,其中所述订阅信息匹配单元还被配置为:
如果所述树结构中的一个内部节点所代表的谓词在所述谓词结果向量中的元素表示所述消息未命中该谓词,则不遍历该内部节点所在分支的后续节点。
18.一种用于处理消息与订阅信息的系统,包括:
消息获取单元,被配置为获取消息;
如权利要求15-17中任一项所述的用于将消息与订阅信息匹配的系统;
订阅信息优先处理装置,其包括:
订阅信息获取单元,被配置为获取订阅信息;
解析单元,被配置为将所述订阅信息解析为谓词集合,其中在所述集合中的谓词不重复;
谓词结果向量生成单元,被配置为基于所生成的谓词集合评估所述消息,以获得谓词结果向量,所述谓词结果向量中的每一元素分别对应于谓词集合中的相应的一个谓词;以及
订阅信息匹配单元,被配置为针对所述谓词结果向量逐一地检查每个订阅信息,以获得与所述消息匹配的订阅信息;以及
调度器,被配置为动态地选择所述订阅信息优先处理装置以及如权利要求15-17中任一项所述的用于将消息与订阅信息匹配的系统,以获得与所述消息匹配的订阅信息。
19.如权利要求18所述的系统,其中当所述订阅信息的数量大于预定阈值时,所述调度器选择如权利要求15-17中任一项所述的用于将消息与订阅信息匹配的系统,以获得与所述消息匹配的订阅信息。
20.如权利要求18所述的系统,其中所述调度器根据消息所在队列的状态来动态地选择订阅信息优先处理装置以及如权利要求15-17中任一项所述的用于将消息与订阅信息匹配的系统,以获得与所述消息匹配的订阅信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410433303.2A CN105447032A (zh) | 2014-08-29 | 2014-08-29 | 用于处理消息与订阅信息方法和系统 |
US14/836,159 US20160065657A1 (en) | 2014-08-29 | 2015-08-26 | Message and subscription information processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410433303.2A CN105447032A (zh) | 2014-08-29 | 2014-08-29 | 用于处理消息与订阅信息方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105447032A true CN105447032A (zh) | 2016-03-30 |
Family
ID=55403940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410433303.2A Pending CN105447032A (zh) | 2014-08-29 | 2014-08-29 | 用于处理消息与订阅信息方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20160065657A1 (zh) |
CN (1) | CN105447032A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984634A (zh) * | 2018-06-21 | 2018-12-11 | 九江学院 | 一种云环境下的高效发布订阅方法 |
WO2019232980A1 (zh) * | 2018-06-05 | 2019-12-12 | 平安科技(深圳)有限公司 | 节点配置方法及装置、计算机可读存储介质和电子设备 |
CN111143707A (zh) * | 2018-11-05 | 2020-05-12 | 千寻位置网络有限公司 | 播发链路选择方法和装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10162603B2 (en) * | 2016-09-10 | 2018-12-25 | Sap Se | Loading data for iterative evaluation through SIMD registers |
CN112383629B (zh) * | 2020-11-16 | 2022-02-01 | 四川长虹电器股份有限公司 | 一种高效可迁移的MQTT Broker订阅树实现方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050055369A1 (en) * | 2003-09-10 | 2005-03-10 | Alexander Gorelik | Method and apparatus for semantic discovery and mapping between data sources |
US20070198629A1 (en) * | 2006-02-21 | 2007-08-23 | Nec Laboratories America, Inc. | Scalable Content Based Event Multicast Platform |
CN101510213A (zh) * | 2009-03-23 | 2009-08-19 | 杭州电子科技大学 | 基于本体的大规模发布订阅流水线匹配方法 |
CN103310350A (zh) * | 2013-06-19 | 2013-09-18 | 西北工业大学 | 一种基于谓词区分和关联的快速订阅与匹配方法 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839730B1 (en) * | 2000-07-14 | 2005-01-04 | Novell, Inc. | Method and system for efficiently matching events with subscribers in a content-based publish-subscribe system |
US7136899B1 (en) * | 2000-12-11 | 2006-11-14 | Microsoft Corporation | Inverse query decisions using binary decision diagrams and sub-expression implications |
US7239614B2 (en) * | 2001-07-16 | 2007-07-03 | International Business Machines Corporation | Methods and apparatus for the propagation of multicast transmissions in a communications network |
US7545805B2 (en) * | 2001-08-15 | 2009-06-09 | Precache, Inc. | Method and apparatus for content-based routing and filtering at routers using channels |
US7117270B2 (en) * | 2001-08-15 | 2006-10-03 | Precache, Inc. | Method for sending and receiving a Boolean function over a network |
US7551629B2 (en) * | 2002-03-28 | 2009-06-23 | Precache, Inc. | Method and apparatus for propagating content filters for a publish-subscribe network |
US7627603B2 (en) * | 2002-03-28 | 2009-12-01 | Precache Inc. | Method and apparatus for implementing query-response interactions in a publish-subscribe network |
US20030212818A1 (en) * | 2002-05-08 | 2003-11-13 | Johannes Klein | Content based message dispatch |
US7127467B2 (en) * | 2002-05-10 | 2006-10-24 | Oracle International Corporation | Managing expressions in a database system |
US20040002958A1 (en) * | 2002-06-26 | 2004-01-01 | Praveen Seshadri | System and method for providing notification(s) |
US7200675B2 (en) * | 2003-03-13 | 2007-04-03 | Microsoft Corporation | Summary-based routing for content-based event distribution networks |
US20040260683A1 (en) * | 2003-06-20 | 2004-12-23 | Chee-Yong Chan | Techniques for information dissemination using tree pattern subscriptions and aggregation thereof |
US7313554B2 (en) * | 2003-09-29 | 2007-12-25 | International Business Machines Corporation | System and method for indexing queries, rules and subscriptions |
US7801857B2 (en) * | 2003-12-19 | 2010-09-21 | Solace Systems, Inc. | Implicit routing in content based networks |
WO2006029508A1 (en) * | 2004-09-13 | 2006-03-23 | Solace Systems Inc. | Highly scalable subscription matching for a content routing network |
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 |
US20070245018A1 (en) * | 2006-04-12 | 2007-10-18 | International Business Machines Corporation | Dynamic access control in a content-based publish/subscribe system with delivery guarantees |
US8127336B2 (en) * | 2007-03-01 | 2012-02-28 | Bridgewater Systems Corp. | Systems and methods for policy-based service management |
US8745082B2 (en) * | 2007-06-29 | 2014-06-03 | Alcatel Lucent | Methods and apparatus for evaluating XPath filters on fragmented and distributed XML documents |
US20090089078A1 (en) * | 2007-09-28 | 2009-04-02 | Great-Circle Technologies, Inc. | Bundling of automated work flow |
US20090125550A1 (en) * | 2007-11-08 | 2009-05-14 | Microsoft Corporation | Temporal event stream model |
US8180758B1 (en) * | 2008-05-09 | 2012-05-15 | Amazon Technologies, Inc. | Data management system utilizing predicate logic |
US8185508B2 (en) * | 2008-08-08 | 2012-05-22 | Oracle International Corporation | Adaptive filter index for determining queries affected by a DML operation |
US8121618B2 (en) * | 2009-10-28 | 2012-02-21 | Digimarc Corporation | Intuitive computing methods and systems |
US8271433B2 (en) * | 2009-12-30 | 2012-09-18 | Nokia Corporation | Method and apparatus for providing automatic controlled value expansion of information |
US20110225038A1 (en) * | 2010-03-15 | 2011-09-15 | Yahoo! Inc. | System and Method for Efficiently Evaluating Complex Boolean Expressions |
US20120240062A1 (en) * | 2011-03-14 | 2012-09-20 | Celly, Inc. | Text-based messaging application cloud |
US9329877B2 (en) * | 2012-03-18 | 2016-05-03 | Microsoft Technology Licensing, Llc | Static verification of parallel program code |
US10642918B2 (en) * | 2013-03-15 | 2020-05-05 | University Of Florida Research Foundation, Incorporated | Efficient publish/subscribe systems |
KR101850802B1 (ko) * | 2013-05-16 | 2018-04-20 | 콘비다 와이어리스, 엘엘씨 | 향상된 발견을 위한 시스템들 및 방법들 |
CN104424555B (zh) * | 2013-08-30 | 2018-01-02 | 国际商业机器公司 | 用于发布/订阅系统中的控制方法及设备 |
US20150134801A1 (en) * | 2013-11-14 | 2015-05-14 | Broadcom Corporation | Making policy-based decisions in a network |
US20150248461A1 (en) * | 2014-02-28 | 2015-09-03 | Alcatel Lucent | Streaming query deployment optimization |
US9679125B2 (en) * | 2014-04-29 | 2017-06-13 | PEGRight, Inc. | Characterizing user behavior via intelligent identity analytics |
-
2014
- 2014-08-29 CN CN201410433303.2A patent/CN105447032A/zh active Pending
-
2015
- 2015-08-26 US US14/836,159 patent/US20160065657A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050055369A1 (en) * | 2003-09-10 | 2005-03-10 | Alexander Gorelik | Method and apparatus for semantic discovery and mapping between data sources |
US20070198629A1 (en) * | 2006-02-21 | 2007-08-23 | Nec Laboratories America, Inc. | Scalable Content Based Event Multicast Platform |
CN101510213A (zh) * | 2009-03-23 | 2009-08-19 | 杭州电子科技大学 | 基于本体的大规模发布订阅流水线匹配方法 |
CN103310350A (zh) * | 2013-06-19 | 2013-09-18 | 西北工业大学 | 一种基于谓词区分和关联的快速订阅与匹配方法 |
Non-Patent Citations (4)
Title |
---|
张颖 等: "发布订阅系统中Carzaniga匹配算法优化", 《杭州电子科技大学学报》 * |
曹俊 等: "发布订阅模式中间件中高效事件过滤器的研究", 《小型微型计算机系统》 * |
苏勇: "面向无线传感网络的发布订阅系统研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
陈明文 等: "大规模事件数据处理的覆盖检测优化算法", 《计算机研究与发展》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019232980A1 (zh) * | 2018-06-05 | 2019-12-12 | 平安科技(深圳)有限公司 | 节点配置方法及装置、计算机可读存储介质和电子设备 |
CN108984634A (zh) * | 2018-06-21 | 2018-12-11 | 九江学院 | 一种云环境下的高效发布订阅方法 |
CN111143707A (zh) * | 2018-11-05 | 2020-05-12 | 千寻位置网络有限公司 | 播发链路选择方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20160065657A1 (en) | 2016-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200034749A1 (en) | Training corpus refinement and incremental updating | |
US8412735B2 (en) | Data quality enhancement for smart grid applications | |
US20160299991A1 (en) | Constructing an in-memory representation of a graph | |
US20180032492A1 (en) | Generation of annotated computerized visualizations with explanations | |
CN107943945B (zh) | 一种大数据分析开发平台中异构算子管理方法 | |
US10838963B2 (en) | Optimized access for hierarchical low cardinality value synopsis in analytical databases | |
CN105447032A (zh) | 用于处理消息与订阅信息方法和系统 | |
CN103970604A (zh) | 基于MapReduce架构实现图处理的方法和装置 | |
CN105511957A (zh) | 用于生成作业告警的方法和系统 | |
CN110708285B (zh) | 流量监控方法、装置、介质及电子设备 | |
CN107506484B (zh) | 运维数据关联审计方法、系统、设备及存储介质 | |
CN113761185B (zh) | 主键提取方法、设备及存储介质 | |
CN112181962A (zh) | 报表校验方法、装置、设备及存储介质 | |
CN107133263A (zh) | Poi推荐方法、装置、设备及计算机可读存储介质 | |
CN113760891A (zh) | 一种数据表的生成方法、装置、设备和存储介质 | |
US20190005005A1 (en) | Tag mapping process and pluggable framework for generating algorithm ensemble | |
CN107644051A (zh) | 用于同类实体分组的系统和方法 | |
CN112015912B (zh) | 一种基于知识图谱的指标智能可视化方法及装置 | |
CN113535773A (zh) | 数据库优化方法、数据库优化装置、电子设备和存储介质 | |
CN112347316A (zh) | 基于GraphSAGE的不良嗜好行为检测方法、装置及电子设备 | |
CN109828965B (zh) | 一种数据处理的方法及电子设备 | |
CN109684198B (zh) | 待测试数据获取方法、装置、介质、电子设备 | |
CN113011672B (zh) | 物流时效预测方法、装置、电子设备及存储介质 | |
CN105279171A (zh) | 在压缩的可变长度字符串上进行谓词评估的方法和设备 | |
CN111046085B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160330 |
|
RJ01 | Rejection of invention patent application after publication |