CN104424555A - 用于发布/订阅系统中的控制方法及设备 - Google Patents
用于发布/订阅系统中的控制方法及设备 Download PDFInfo
- Publication number
- CN104424555A CN104424555A CN201310389492.3A CN201310389492A CN104424555A CN 104424555 A CN104424555 A CN 104424555A CN 201310389492 A CN201310389492 A CN 201310389492A CN 104424555 A CN104424555 A CN 104424555A
- Authority
- CN
- China
- Prior art keywords
- subscribe request
- message
- probability
- module
- happening
- 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.)
- Granted
Links
Classifications
-
- 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/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1859—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- 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
-
- 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/214—Monitoring or handling of messages using selective forwarding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种订阅请求控制方法及设备,可用于发布/订阅引擎中。所述方法包括:将收到的订阅请求解析为谓词表达式;根据所述谓词表达式中的谓词的发生概率确定所述订阅请求的发生概率;根据与所述订阅请求关联的发布消息的频率以及所述订阅请求的发生概率估计该订阅请求会导致的消息增量;根据所述估计的消息增量进行消息服务质量控制。利用本发明实施例的方法和装置,可以基于内容在发布/订阅引擎中控制服务质量。
Description
技术领域
本发明是涉及发布/订阅系统,更具体而言,涉及一种用于发布/订阅系统中的控制方法和设备。
背景技术
在现有的发布/订阅(pub/sub)系统中一般包括发布者、订阅者以及发布/订阅引擎。其中,发布者是信息的生产者,订阅者是信息的消费者,发布者与订阅者之间相互可以知道、或者不知道对方的存在,是一种松耦合的关系。其中的发布-订阅引擎提供存储以及转发功能,以用于在发布者以及订阅者之间路由携带事件信息的数据。通常,发布者通过事件发布应用程序接口发布事件信息,而订阅者通过订阅应用程序接口发出订阅请求以及接收所订阅的信息。
需要了解的是,在发布/订阅系统中,数据的生产可以预估,而数据的消费则是无法预计的。因此,对于具有实时要求的pub/sub系统来说,就特别需要对订阅请求进行控制,使得只要接受了一个订阅请求,就会保证具有实时要求的服务质量Qos。
现有技术中存在着基于主题的Pub/Sub模型,通过基于主题的Pub/Sub模型能够在一定程度上解决实时性的要求。通过该种模型定义了如何向一个内容节点发布和订阅请求,这些节点被称作主题(topic),通常是由行业专家预先建立主题树。主题可以被认为是消息的传输中介,发布者(publisher)发布消息到主题,订阅者(subscriber)从主题订阅请求。主题使得消息订阅者和消息发布者保持互相独立,不需要接触即可保证消息的传送。然而,如果信息的发布者涉及各种各样的设备(例如当今的物联网领域),并且发布着多种多样的信息,根本就无法建立复杂的主题树,因此,也无法应用现有的基于主题的pub/sub技术方案。
与基于主题的发布/订阅系统相比,现有技术中的基于内容的发布/订阅系统更具有弹性,无需在系统中预定义主题树,发布者也无需知道要将数据发至哪个主题节点。订阅者通过定义基于消息内容的过滤规则,即可实现接收发布者的部分消息。相对于基于主题的发布/订阅系统,在基于内容的发布/订阅系统中,每个订阅者对数据的消费则是更加动态多变,从而更难以保证具有实时要求的服务质量Qos。然而,在物联网领域中,出于低功耗等需求,作为发布者的传感器通常都只能进行简单的逻辑运算,无法进行复杂操作,因此,也无法应用现有的基于内容的订阅/发布技术方案。
由上可见,现有技术仍然存在着改进的空间,需要提供一种订阅请求控制方案,可用于发布/订阅引擎中用于改善服务质量。
发明内容
根据本发明的一个第方面,提供了一种订阅请求控制方法,可用于发布/订阅引擎中,该方法包括:将收到的订阅请求解析为谓词表达式;根据所述谓词表达式中的谓词的发生概率确定所述订阅请求的发生概率;根据与所述订阅请求关联的发布消息的频率以及所述订阅请求的发生概率估计该订阅请求会导致的消息增量;根据所述估计的消息增量进行消息服务质量控制。
根据本发明的第二个方面,还提供了一种订阅请求控制设备,可用于发布/订阅引擎中,该设备包括:解析模块,配置为将收到的订阅请求解析为谓词表达式;第一确定模块,配置为根据所述谓词表达式中的谓词的发生概率确定所述订阅请求的发生概率;第二确定模块,配置为根据与所述订阅请求关联的发布消息的频率以及所述订阅请求的发生概率估计该订阅请求会导致的消息增量;控制模块,配置为根据所述估计的消息增量进行消息服务质量控制。
采用本发明的方法和装置,能够用于发布/订阅引擎中用于改善服务质量。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图2示出根据本发明一个实施例的订阅请求控制方法流程图。
图3A示出了根据本发明一个实施例的谓词表达式的二叉树示意图。
图3B示出了根据本发明一个实施例的以属性“身高”为例确定身高的概率分布的意图。
图4示出根据本发明一个实施例的在车联网中的消息发布速率曲线示意图。
图5示出根据本发明一个实施例的订阅请求控制设备示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如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系统、磁带驱动器以及数据备份存储系统等。
现在参看图2,其示出根据本发明一个实施例的订阅请求控制方法的流程图,可用于发布/订阅引擎中。如图2所示,该方法至少包括以下步骤:
在步骤201中,将收到的订阅请求解析为谓词表达式。
订阅请求用来描述用户希望订阅的内容的计算机可读语句。订阅请求可用if then的判断语法描述,也可用SQL查询语句来表述,本领域技术人员还可以想到其它用于描述订阅请求的方式。
举例而言,如果用户A的订阅请求是要订阅关于所有男性,身高大于180cm或者体重小于170斤的消息,那么,在一个实施例中,采用if then的判断语法可将订阅请求描述为:if(性别=男and(身高>180cm or体重<170斤))then Dispatch to A。在另一个实施例中,是采用SQL查询语句来定义,例如:SELECT*WHERE(性别=男and(身高>180cm or体重<170斤))。
接收到订阅请求后,会根据if then语法或SQL语法,提取出条件判断表达式“性别=男and(身高>180cm or体重<170斤)”。然后将所提取出的表达式解析为谓词和逻辑操作算子(“与”和“或”)构成的谓词表达式。其中的谓词是指示了客体的性质、属性等信息的最小单元,在本申请中,谓词是包括属性字段、比较操作符以及参照值的三元组,例如该例子中的“性别=男”,“身高>180cm”。
如图3A所示,在一个实施例中,谓词表达式中的谓词之间计算的优先级关系可以用二叉树描述,其中,叶子节点为谓词,父节点为逻辑操作算子,图3A所示的谓词表达式具有两层二叉树结构。
在步骤202中,根据谓词表达式中的所有谓词的发生概率确定所述订阅请求的发生概率。
在一个实施例中,是根据一个谓词中包括的属性以及该属性的历史概率分布确定该谓词的发生概率。每个属性都具有对应的历史概率分布,能够反映出该属性的属性值的概率分布状况。
在一个实施例中,确定属性的历史概率分布包括:子步骤1,实时接收发布者所发布的消息,对所发布的消息中的包含的属性及属性值进行统计;以及子步骤2,根据所述统计结果确定各个属性的历史概率分布。在子步骤1中,响应于接收到一条发布的消息,确定该消息中包括的属性以及对应的属性值,然后,更新该属性值所属的区段的统计值,例如是计数值加一,或者进一步计算出各个区段的比例值。借助前述操作,根据接收到的所有历史发布信息,就可得到各个属性的属性值的历史概率分布。采用该种实施例,发布/订阅系统能够即时的建立各个属性的概率分布,这样能够快速的获取所需要的属性的历史概率分布。
在另一个实施例中,是临时扫描已发布消息,然后确定出所需要的属性的概率分布。该种实施例虽然可行,但速度比较慢。
图3B以属性“身高”为例,更为具体的示意出如何确定身高的历史概率分布。如图3B所示,横坐标x所示的是身高值所划分多个区间(未示出具体的升高区段数值),既可是等间距的,也可以是变化的,例如,对于中间部分,可以进行较细粒度的划分,而对于分布曲线两边,可以进行较粗粒度的划分。在这个实施例中,纵坐标表示所发布的具有某个区段身高的消息的比例值。例如,当接收到的一条发布消息中,包含了身高是175的信息,则将身高为170~180的区间的统计值进行统计操作,例如加1,进而,确定出每个区段身高的消息的比例,例如14%。
在一个改进的实施例中,为了能够快速的找到相应部分并进行统计操作,可在确定属性的概率分布中采用哈希结构对消息的属性值进行统计。
在计算各个谓词的生成概率时,根据该谓词所涉及的属性的概率分布计算该谓词的生成概率。接下来,结合前述的例子进行进一步的说明,具体而言,可根据公式P(Subscription A)=P(性别=男)*P(身高>180cm)+P(性别=男)*P(体重<170斤)计算订阅请求A的发生概率P(Subscription A),其中,P(性别=男)表示性别为男的概率,P(身高>180cm)表示身高大于180公分的概率,P(体重<170斤)表示体重小于170斤的概率。当确定了各个属性的概率分布时,计算各个谓词的概率并非难事,在此不再赘述其细节。
为了进一步简化订阅请求的发生概率的计算,在一个改进的实施例中,步骤202还包括:将解析后的谓词表达式转换为逻辑等价的析取范式;然后,根据所述析取范式中所有谓词的发生概率确定所述订阅请求的发生概率。
一个逻辑表达式若被认为是析取范式(DNF),当且仅当它是一个或多个谓词的一个或多个合取的析取,其中,析取是指用“或”算子把几个谓词连接起来,而合取是指用“与”算子把几个谓词连接起来。具体的,可通过双重否定除去律、德·摩根定律和分配律等方式逻辑表达式转换成逻辑等价的析取范式,本领域技术人员明了,所有逻辑表达式都可以转换成析取范式。
通过转换为析取范式,使得谓词表达式由“与”算子以及“或”算子构成的一层的逻辑表达式,从而简化了后续步骤中估计订阅请求所导致的消息增量的运算。
对于前述提及例子,通过该步骤,可将订阅请求转换为析取范式以进行规范化:(性别=男and身高>180cm)or(性别=男and体重<170斤)。
在一个实施例中,可对所有解析后的谓词表达式进行转换,对于已经是析取范式的表达式而言,转换前后是一致的。在另一个实施例中,可首先判段是否为析取范式然后确定是否需要进行转换,具体的,可根据定义判断判断谓词表达式是否为析取范式,是的话才进行转换。例如,根据定义,超过一层就不是析取范式,则需要进行转换。
在步骤203中,根据与所述订阅请求关联的发布消息的频率以及所述订阅请求的发生概率估计该订阅请求会导致的消息增量。
按照一个实施例,是通过公式R(Subscription A)=R(msg)*P(Subscription A)评估订阅请求A(subscriptionA)可能导致的消息增量,其中,R(msg)是与订阅请求A关联的消息发布频率,其中P(Subscription A)是订阅请求A的发生概率,通过两者的乘积运算,就可得到subscriptionA可能导致的消息增量。
在步骤204中,根据所述估计的消息增量进行消息服务质量控制。
将评估出来的消息增量与系统所剩吞吐能力或订阅者的接收能力进行对比,从而对订阅请求进行相应的处理从而实现所述消息服务质量控制。
在一个实施例中,根据所述订阅请求会导致的消息增量与所述发布/订阅引擎的剩余吞吐能力的比较结果进行所述消息服务质量控制,具体可以包括:若所述订阅请求会导致的消息增量大于发布/订阅引擎的剩余吞吐能力,则拒绝所述订阅请求,否则接受所述订阅请求。
在另一个实施例中,是根据所述订阅请求会导致的消息增量与所述订阅请求的订阅者的接收能力的比较结果进行所述消息服务质量控制,具体可以包括:若所述订阅请求会导致的消息增量大于所述订阅请求的订阅者的接收能力,则拒绝所述订阅请求,否则接受所述订阅请求。
消息发布频率R(msg)通常是恒定的,然而,在另一个实施例中,还存在R(msg)不恒定的情况,消息发布速率通常在一定周期内符合一定的规律分布,例如,图4所示出的车联网中的消息发布速率曲线(connected vehicle Msgprofile),可见在智能交通的场景中,即,纵坐标所表现的消息发布速率(单位是“千条/秒”)在横坐标所表示的时间(单位是“小时”)上呈现出了早高峰和晚高峰特征。在图4所示的实施例中,可以采用公式1估计消息增量。
公式1:
在公式1中,Rj(t)是一种消息类型j的消息发布速率概况(message rateprofile),P(i)是所对应的订阅请求i的发生概率。
在一个改进的实施例中,还可为订阅者设定缓存空间,用于缓存该订阅者所订阅的消息,因此,根据所述估计的消息增量进行消息服务质量控制包括:使得某个时间区间发送的消息量与所述订阅者可接受的消息量之差小于所述设定的缓存空间,接下来,以公式2作进一步的说明:
公式2:
在公式2中,R(rec)是订阅者剩余的可接收能力,buffer_size是所设定的缓存空间的大小。因此,公式2表示t1至t2的时间区间内,某订阅请求所导致的消息增量与其订阅者可接受的消息量之差需要小于设定的缓存空间大小(buffer size),如果小于,则接受该订阅请求,如果大于则拒绝该订阅请求,从而保证了服务质量。
图5示出根据本发明一个实施例的订阅请求控制设备示意图,可用于发布/订阅引擎中,该设备包括:接收模块501,将收到的订阅请求解析为谓词表达式。第一确定模块502,根据所述谓词表达式中的谓词的发生概率确定所述订阅请求的发生概率。第二确定模块503,根据与所述订阅请求关联的发布消息的频率以及所述订阅请求的发生概率估计该订阅请求会导致的消息增量。控制模块504,根据所述估计的消息增量进行消息服务质量控制。
在一个实施例中,第一确定模块502包括:配置为将解析后的谓词表达式转换为逻辑等价的析取范式的模块;配置为根据所述析取范式中所有谓词的发生概率确定所述订阅请求的发生概率的模块。
在一个实施例中,其中,是根据所述谓词中包括的属性以及该属性的历史概率分布确定所述谓词的发生概率。
在一个实施例中,图5所示所述的设备,还包括:配置为对于接收到的每一条发布的消息,对所发布的消息中的包含的属性及属性值进行统计的模块;配置为根据对所有历史发布的消息的统计结果确定各个属性的历史概率分布的模块。
在一个实施例中,所述控制模块504包括以下至少一种:配置为根据所述订阅请求会导致的消息增量与所述发布/订阅引擎的剩余吞吐能力的比较结果进行所述消息服务质量控制的模块;配置为根据所述订阅请求会导致的消息增量与所述订阅请求的订阅者的接收能力的比较结果进行所述消息服务质量控制的模块。在一个改进的实施例中,所述配置为根据所述订阅请求会导致的消息增量与所述订阅请求的订阅者的接收能力的比较结果进行所述消息服务质量控制的模块包括:配置为若所述订阅请求会导致的消息增量大于所述订阅者的接收能力,则拒绝所述订阅请求,否则接受所述订阅请求的模块。在另一个改进的实施例中,所述配置为根据所述订阅请求会导致的消息增量与所述发布/订阅引擎的剩余吞吐能力的比较结果进行消息服务质量控制的模块包括:配置为若所述订阅请求会导致的消息增量大于所述发布/订阅引擎的剩余吞吐能力,则拒绝所述订阅请求,否则接受所述订阅请求的模块。
在一个实施例中,图5所示所述的设备,还包括为订阅者设定缓存空间,其中,所述控制模块包括:配置为使得某个时间区间发送的消息量与所述订阅者可接受的消息量之差小于所述设定的缓存空间的模块。
在一个实施例中,所述发布信息的频率是固定值或者具有规律的变化值。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (16)
1.一种订阅请求控制方法,可用于发布/订阅引擎中,该方法包括:
将收到的订阅请求解析为谓词表达式;
根据所述谓词表达式中的谓词的发生概率确定所述订阅请求的发生概率;
根据与所述订阅请求关联的发布消息的频率以及所述订阅请求的发生概率估计该订阅请求会导致的消息增量;
根据所述估计的消息增量进行消息服务质量控制。
2.根据权利要求1述的方法,根据所述谓词表达式中的谓词的发生概率确定所述订阅请求的发生概率包括:
将解析后的谓词表达式转换为逻辑等价的析取范式;
根据所述析取范式中所有谓词的发生概率确定所述订阅请求的发生概率。
3.根据权利要求1述的方法,其中,根据所述谓词中包括的属性以及该属性的历史概率分布确定所述谓词的发生概率。
4.根据权利要求3所述的方法,还包括:
实时接收发布者所发布的消息,对所发布的消息中包含的属性及属性值进行统计;
根据所述统计结果确定各个属性的历史概率分布。
5.根据权利要求1述的方法,其中根据所述估计的消息增量进行消息服务质量控制包括以下至少一种方式:
根据所述订阅请求会导致的消息增量与所述发布/订阅引擎的剩余吞吐能力的比较结果进行所述消息服务质量控制;
根据所述订阅请求会导致的消息增量与所述订阅请求的订阅者的接收能力的比较结果进行所述消息服务质量控制。
6.根据权利要求5所述的方法,其中,
所述根据所述订阅请求会导致的消息增量与所述订阅请求的订阅者的接收能力的比较结果进行所述消息服务质量控制包括:若所述订阅请求会导致的消息增量大于所述订阅者的接收能力,则拒绝所述订阅请求,否则接受所述订阅请求;
所述根据所述订阅请求会导致的消息增量与所述发布/订阅引擎的剩余吞吐能力的比较结果进行消息服务质量控制包括:若所述订阅请求会导致的消息增量大于所述发布/订阅引擎的剩余吞吐能力,则拒绝所述订阅请求,否则接受所述订阅请求。
7.根据权利要求1所述的方法,还包括为订阅者设定缓存空间,其中,根据所述估计的消息增量进行消息服务质量控制包括:使得某个时间区间发送的消息量与所述订阅者可接受的消息量之差小于所述设定的缓存空间。
8.根据权利要求1所述的方法,其中,所述发布信息的频率是固定值或者具有规律的变化值。
9.一种订阅请求控制设备,可用于发布/订阅引擎中,该设备包括:
接收模块,配置为将收到的订阅请求解析为谓词表达式;
第一确定模块,配置为根据所述谓词表达式中的谓词的发生概率确定所述订阅请求的发生概率;
第二确定模块,配置为根据与所述订阅请求关联的发布消息的频率以及所述订阅请求的发生概率估计该订阅请求会导致的消息增量;
控制模块,配置为根据所述估计的消息增量进行消息服务质量控制。
10.根据权利要求9述的设备,所述第一确定模块包括:
配置为将解析后的谓词表达式转换为逻辑等价的析取范式的模块;
配置为根据所述析取范式中所有谓词的发生概率确定所述订阅请求的发生概率的模块。
11.根据权利要求9述的设备,其中,根据所述谓词中包括的属性以及该属性的历史概率分布确定所述谓词的发生概率。
12.根据权利要求11所述的设备,还包括:
配置为实时接收发布者所发布的消息,对所发布的消息中包含的属性及属性值进行统计的模块;
配置为根据所述统计结果确定各个属性的历史概率分布的模块。
13.根据权利要求9述的设备,所述控制模块包括以下至少一种:
配置为根据所述订阅请求会导致的消息增量与所述发布/订阅引擎的剩余吞吐能力的比较结果进行所述消息服务质量控制的模块;
配置为根据所述订阅请求会导致的消息增量与所述订阅请求的订阅者的接收能力的比较结果进行所述消息服务质量控制的模块。
14.根据权利要求13所述的设备,其中,
所述配置为根据所述订阅请求会导致的消息增量与所述订阅请求的订阅者的接收能力的比较结果进行所述消息服务质量控制的模块包括:配置为若所述订阅请求会导致的消息增量大于所述订阅者的接收能力,则拒绝所述订阅请求,否则接受所述订阅请求的模块;
所述配置为根据所述订阅请求会导致的消息增量与所述发布/订阅引擎的剩余吞吐能力的比较结果进行消息服务质量控制的模块包括:配置为若所述订阅请求会导致的消息增量大于所述发布/订阅引擎的剩余吞吐能力,则拒绝所述订阅请求,否则接受所述订阅请求的模块。
15.根据权利要求9所述的设备,还包括为订阅者设定缓存空间,其中,所述控制模块包括:配置为使得某个时间区间发送的消息量与所述订阅者可接受的消息量之差小于所述设定的缓存空间的模块。
16.根据权利要求9所述的设备,其中,所述发布信息的频率是固定值或者具有规律的变化值。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310389492.3A CN104424555B (zh) | 2013-08-30 | 2013-08-30 | 用于发布/订阅系统中的控制方法及设备 |
PCT/CN2014/084897 WO2015027853A1 (en) | 2013-08-30 | 2014-08-21 | Control method and apparatus for publish/subscribe systems |
US14/914,769 US10097656B2 (en) | 2013-08-30 | 2014-08-21 | Control method and apparatus for publish/subscribe systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310389492.3A CN104424555B (zh) | 2013-08-30 | 2013-08-30 | 用于发布/订阅系统中的控制方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104424555A true CN104424555A (zh) | 2015-03-18 |
CN104424555B CN104424555B (zh) | 2018-01-02 |
Family
ID=52585560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310389492.3A Active CN104424555B (zh) | 2013-08-30 | 2013-08-30 | 用于发布/订阅系统中的控制方法及设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10097656B2 (zh) |
CN (1) | CN104424555B (zh) |
WO (1) | WO2015027853A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990375B2 (en) * | 2012-08-31 | 2015-03-24 | Facebook, Inc. | Subscription groups in publish-subscribe system |
CN104424555B (zh) * | 2013-08-30 | 2018-01-02 | 国际商业机器公司 | 用于发布/订阅系统中的控制方法及设备 |
CN105447032A (zh) * | 2014-08-29 | 2016-03-30 | 国际商业机器公司 | 用于处理消息与订阅信息方法和系统 |
US9407585B1 (en) * | 2015-08-07 | 2016-08-02 | Machine Zone, Inc. | Scalable, real-time messaging system |
US10225219B2 (en) | 2016-02-22 | 2019-03-05 | International Business Machines Corporation | Message delivery in a message system |
CN115766318A (zh) * | 2022-10-31 | 2023-03-07 | 海尔优家智能科技(北京)有限公司 | 组件间的消息传递方法和装置、存储介质及电子装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1953426A (zh) * | 2005-10-19 | 2007-04-25 | 国际商业机器公司 | 用于管理订阅的发布/订阅系统和方法 |
US20080306888A1 (en) * | 2007-06-07 | 2008-12-11 | Chitra Dorai | Stochastic control optimization for sender-based flow control in a distributed stateful messaging system |
US20090116380A1 (en) * | 2007-11-07 | 2009-05-07 | Santiago Rodolfo A | Quality of service management for message flows across multiple middleware environments |
CN102024053A (zh) * | 2010-12-17 | 2011-04-20 | 东北大学 | 同构对称发布订阅系统的近似环匹配方法 |
CN102571710A (zh) * | 2010-12-24 | 2012-07-11 | 中兴通讯股份有限公司 | 信息订阅方法及系统 |
US20130132582A1 (en) * | 2011-11-18 | 2013-05-23 | Electronics And Telecommunications Research Institute | Apparatus and method for supporting qos in middleware for data distribution service |
CN103220328A (zh) * | 2013-03-05 | 2013-07-24 | 迈普通信技术股份有限公司 | 数据同步分发方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5850518A (en) * | 1994-12-12 | 1998-12-15 | Northrup; Charles J. | Access-method-independent exchange |
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 |
JP5467866B2 (ja) * | 2007-05-08 | 2014-04-09 | 富士通株式会社 | 情報通信システム、情報通信方法、情報通信装置及びコンピュータプログラム |
US8959162B2 (en) | 2011-02-23 | 2015-02-17 | International Business Machines Corporation | Publisher-based message data cashing in a publish-subscription environment |
US9065831B2 (en) | 2011-03-01 | 2015-06-23 | Cisco Technology, Inc. | Active load distribution for control plane traffic using a messaging and presence protocol |
US20130067492A1 (en) | 2011-09-09 | 2013-03-14 | Eli Joshua FIDLER | Content-filter publish-subscribe system that optimizes interprocess communications |
CN104424555B (zh) * | 2013-08-30 | 2018-01-02 | 国际商业机器公司 | 用于发布/订阅系统中的控制方法及设备 |
-
2013
- 2013-08-30 CN CN201310389492.3A patent/CN104424555B/zh active Active
-
2014
- 2014-08-21 US US14/914,769 patent/US10097656B2/en active Active
- 2014-08-21 WO PCT/CN2014/084897 patent/WO2015027853A1/en active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1953426A (zh) * | 2005-10-19 | 2007-04-25 | 国际商业机器公司 | 用于管理订阅的发布/订阅系统和方法 |
US20080306888A1 (en) * | 2007-06-07 | 2008-12-11 | Chitra Dorai | Stochastic control optimization for sender-based flow control in a distributed stateful messaging system |
US20090116380A1 (en) * | 2007-11-07 | 2009-05-07 | Santiago Rodolfo A | Quality of service management for message flows across multiple middleware environments |
CN101904140A (zh) * | 2007-11-07 | 2010-12-01 | 波音公司 | 用于多个中间件环境之间的消息流的服务质量(qos)管理 |
CN102024053A (zh) * | 2010-12-17 | 2011-04-20 | 东北大学 | 同构对称发布订阅系统的近似环匹配方法 |
CN102571710A (zh) * | 2010-12-24 | 2012-07-11 | 中兴通讯股份有限公司 | 信息订阅方法及系统 |
US20130132582A1 (en) * | 2011-11-18 | 2013-05-23 | Electronics And Telecommunications Research Institute | Apparatus and method for supporting qos in middleware for data distribution service |
CN103220328A (zh) * | 2013-03-05 | 2013-07-24 | 迈普通信技术股份有限公司 | 数据同步分发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2015027853A1 (en) | 2015-03-05 |
CN104424555B (zh) | 2018-01-02 |
US10097656B2 (en) | 2018-10-09 |
US20160205210A1 (en) | 2016-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104424555A (zh) | 用于发布/订阅系统中的控制方法及设备 | |
EP3852420B1 (en) | Method and device for determining load threshold | |
CN108540568B (zh) | 计算能力共享方法及智能设备 | |
CN112990850A (zh) | 一种基于规则引擎的流程实现方法及系统 | |
CN111639356A (zh) | 一种智慧城市数据共享系统及方法 | |
CN104881337A (zh) | 扩充scsi机箱新功能的方法 | |
CN114676205A (zh) | 事件信息的处理方法及装置 | |
EP3723343B1 (en) | Resource processing method and system, storage medium and electronic device | |
CN117041120A (zh) | 一种分布式全链路服务监控系统 | |
CN110011888B (zh) | 一种模块化的can网络负载率优化方法及装置 | |
CN113535420A (zh) | 一种消息处理方法和装置 | |
CN106815772A (zh) | 电力数据上报方法及装置 | |
CN114610701A (zh) | 任务数据处理方法、装置、电子设备和介质 | |
US9742832B2 (en) | Transmission apparatus, transmission method, computer-readable storage medium storing transmission program, and relay system | |
CN114579054A (zh) | 一种数据处理方法、装置、电子设备及计算机可读介质 | |
CN106990992A (zh) | 服务配置方法、装置、服务器及存储介质 | |
CN112749204A (zh) | 一种读取数据的方法和装置 | |
WO2022268071A1 (zh) | 一种车路协同信息处理方法、装置和终端设备 | |
CN115600671B (zh) | 深度学习框架的数据处理方法、装置、设备和存储介质 | |
CN116257164B (zh) | 候车用户焦虑响应方法及系统 | |
CN116669018B (zh) | 一种基于物联网通信的数据处理方法及设备 | |
CN103368754A (zh) | 一种检测业务故障的方法、装置和系统及设备 | |
CN111831473B (zh) | 备份管理的方法、设备和计算机程序产品 | |
CN105956920A (zh) | 监控交易的方法及系统 | |
CN118152134A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |