CN103729461B - 一种基于历史记录数据挖掘的发布和订阅方法 - Google Patents
一种基于历史记录数据挖掘的发布和订阅方法 Download PDFInfo
- Publication number
- CN103729461B CN103729461B CN201410012762.3A CN201410012762A CN103729461B CN 103729461 B CN103729461 B CN 103729461B CN 201410012762 A CN201410012762 A CN 201410012762A CN 103729461 B CN103729461 B CN 103729461B
- Authority
- CN
- China
- Prior art keywords
- event
- item
- frequent
- item collection
- subscriber
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于历史记录数据挖掘的发布和订阅方法,首先通过对订阅的历史记录进行数据挖掘,找出订阅者感兴趣的属性组合;订阅者根据订阅中包含的属性组合及其支持度确定代理节点;事件产生后只发送到可能存储匹配的订阅的事件代理上。该方法通过对支持度小的属性组合进行合并,在负载均衡和事件的发布开销之间取得了良好的折中。综合来讲,该方案的主要优势在于:不依赖于所使用的overlay架构,实现简单,可移植性强;通过订阅者感兴趣的属性集合确定事件代理,提高了事件代理上订阅的相关性,进而可以利用订阅间的覆盖关系提高匹配效率;在负载均衡和事件的发布开销之间取得了较好的折中,系统整体性能大大提升。
Description
技术领域
本发明属于中间件技术领域,具体涉及一种基于历史记录数据挖掘的能够提高订阅与事件匹配效率和节点负载均衡能力的发布和订阅方法。
背景技术
发布和订阅系统具有松耦合、匿名、多对多通信和可扩展的特点,是支持新一代网络计算的重要基础中间件平台。发布和订阅通讯模型一般由发布者(也称信息生产者)、订阅者(也称信息消费者)和事件代理组成。事件代理充当发布者和订阅者的中介,订阅者向事件代理注册订阅,表达对特定信息的兴趣,发布者以事件形式发送信息到事件代理,事件代理对订阅和事件进行匹配,并将满足匹配条件的事件通知到订阅者。其中用于表达订阅者兴趣的订阅模型有多种,包括基于通道的、基于主题的和基于内容的。由于基于内容的订阅能够实现对订阅者兴趣的准确表达,因此受到广泛的关注。本发明实现的也是基于内容的发布和订阅系统。
在发布和订阅系统中,事件代理的实现方式有两种:集中式和分布式。集中式结构只有一个事件代理,所有的订阅者和发布者都将订阅和事件发往这一事件代理。集中式结构的优点是实现简单,易于管理和维护,缺点是随着用户数量的增加,事件代理将成为性能瓶颈,因此不具备扩展性。分布式结构是将多个事件代理以一定的拓扑结构组织起来形成一个代理覆盖网络,由所有的事件代理共同完成订阅的注册、事件的发布以及事件和订阅的匹配等。分布式结构中的事件代理可以是专门的事件代理服务器,也可以由普通节点担任,因此系统的可扩展性好,具有良好的应用前景。
在设计分布式的发布和订阅系统时,如何分配每个事件代理负责的订阅和事件是一个核心问题。一般来讲,订阅和事件需要在某一事件代理相遇才能实现相应的匹配,因此如果将订阅和事件发送到合适的节点,则相应地匹配效率会大大提高。目前针对这一问题存在多种设计方案,下面分别进行介绍:
第一类方案是改进的洪泛法。Terpstra(Wesley W.Terpstra,JussiKangasharju,Christof Leng,et al.BubbleStorm:Resilient,Probabilistic andExhaustive Peer-to-Peer Search,in Proceedings of the 2007conference onApplications,Technologies,Architectures,and Protocols for ComputerCommunications,2007,pp.49-60.)结合随机行走算法和洪泛法的优势提出了一种在P2P网络中提供查询的方法,通过设置数据和查询在每个节点的转发数目和跳数来对转发的最终数目和范围进行控制,最终达到令匹配概率达到某一阈值的目的。这一方案的优势是实现简单,缺点是不能保证事件被发送到所有感兴趣的订阅者。
第二类方案是空间划分方法,典型算法包括Meghdoot(Abhishek Gupta,OzgurD.Sahin,Divyakant Agrawal,et al.Meghdoot:Content-Based Publish/Subscribe overP2P Networks,in Proceedings of the 5th ACM/IFIP/USENIX internationalconference on Middleware,2004,pp.254-273.)和基于兴趣划分的内容发布订阅系统(逯鹏、刘旭东、林学练等,基于兴趣划分的内容发布订阅系统关键算法,北京航空航天大学学报,Vol 32,No8,2006,pp.992-997.)。根据系统中的属性个数将节点映射到一个2n维(或n维)笛卡尔空间,然后将笛卡尔空间划分为多个子空间,每个事件代理负责一个子空间内订阅和事件的匹配。在该方案中,根据订阅或事件与笛卡尔空间的映射关系可以准确确定订阅和事件发送的目标节点,最大限度降低了发送冗余信息的数量。但是当系统中属性个数较多时,维护笛卡尔空间的开销较大,算法的复杂度大大提高。此外,当节点加入、退出较频繁时,笛卡尔子空间的分割与合并会导致区域不规则问题出现,进一步加大了空间维护的难度。
第三类方案是基于订阅覆盖关系的拓扑设计。Terpstra(Wesley W.Terpstra,Stefan Behnel,Ludger Fiege,et al.A Peer-to-Peer Approach to Content-BasedPublish/Subscribe,In Proceeding of the 2nd international workshop onDistributed Event-Based Systems,2003,pp.1-8)提出了一种基于Chord的发布/订阅系统,要求在事件转发路径上节点存储的订阅满足覆盖关系,即在某一节点上与订阅不匹配的事件一定不会与下一跳节点上存储的订阅匹配,反之,在后一跳节点上能够匹配的事件一定与前一跳节点上存储的订阅匹配,以此来提高事件与订阅的匹配效率。但是Terpstra没有具体介绍将订阅依据覆盖关系在Chord节点上存储的方法。Silvia(Silvia Bianchi,Pascal Felber and Maria Gradinariu,Content-Based Publish/Subscribe UsingDistributed R-Trees,Euro-Par2007,pp.537-548)提出根据订阅将订阅者组织为R-tree,每个非叶子节点均维护一个覆盖其本身及其子节点订阅的Minimum Bounding Rectangle(MBR),实现了父节点和子节点间MBR的覆盖关系。这一方案的劣势在于R-tree的建立过程依赖于订阅,此时R-tree结构不仅受节点的加入、退出的影响,更会根据订阅的变化而改变,因此R-tree的维护开销较大。
此外还有一种解决方案是根据属性来分配订阅(Yingwu Zhu and Yiming Hu,Ferry:A P2P-Based Architecture for Content-Based Publish/Subscribe Services,IEEE Transactions on Parallel and Distributed systems,vol.18,No.15,2007,pp.672-685)。当一个订阅产生时,随机或依据某一规则选择订阅中包含的一个属性计算hash,然后根据结果将订阅存储到DHT网络中的相应节点。事件产生后被发送到所有事件代理进行匹配,以免遗漏感兴趣的订阅者。这一方案实现简单,实用性强,但是没有考虑订阅间的覆盖关系,所以匹配效率较低,此外其负载均衡能力稍差。Eferry(Xiaoyu Yang,Yingwu Zhu and Yiming Hu,Scalable Content-Based Publish/Subscribe Servicesover Structured Peer-to-Peer Networks,15th EUROMICRO International Conferenceon Parallel,Distributed and Network-Based Processing,2007,pp.171-178)对Ferry进行了改进,通过控制事件代理的个数来提高系统的负载均衡能力,但是Eferry中发布事件的开销大大增大,且事件从发布到到达订阅者的时延也更长。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种基于历史记录数据挖掘的发布和订阅方法,不依赖于所使用的overlay架构,实现简单,可移植性强;提高了事件代理上订阅的相关性,提高了匹配效率,系统整体性能大大提升。
本发明技术解决方案:基于历史记录数据挖掘的发布和订阅方法,如图1所示,实现步骤如下:
(1)对订阅的历史记录进行数据挖掘,确定合适的N、“N-项集合”、各频繁N-项集的支持度以及“虚拟N-项集合”,具体实现如下:
(11)提取历史记录中每个订阅的属性集合;
(12)将订阅的属性集合作为事务,根据给定的最小支持度阈值计算频繁项集;当某一项集的支持度大于该最小支持度阈值时将这一项集称为频繁项集,频繁N-项集是指包含N个属性的频繁项集;
(13)统计所有频繁项集包含的属性个数;
(14)若在所有频繁项集中,频繁k-项集的数目最多,则将k记为N,将所有频繁k-项集的集合记为“N-项集合”;
(15)从非频繁N-项集即包含属性个数为N,但不是频繁项集的项集中随机选择M个组成“虚拟N-项集合”,这些被选定的非频繁N-项集称作虚拟频繁N-项集;
(2)订阅者根据订阅的属性集合、“N-项集合”、各频繁N-项集的支持度和“虚拟N-项集合”选择某一N-项集,并根据该N-项集发布订阅;
(3)发布者根据事件的属性集合、“N-项集合”和“虚拟N-项集合”形成一个“N-项集列表”,并根据该列表发布事件;
(4)事件代理根据当前可用带宽、事件大小和匹配的订阅者数目转发事件,转发事件的方式包括两种:直接转发和基于分组的转发,所述直接转发是指事件代理将事件直接发送给每个订阅者;所述分组转发指事件代理将订阅者分为几个分组,并将事件转发给每个分组中的一个订阅者,即组长leader,由该leader将事件转发给分组中的其它订阅者;
(5)当负责某一频繁N-项集的事件代理匹配负载大于某一给定匹配负载阈值时,通过增加事件代理个数的方式来降低节点负载,实现节点间的负载均衡。
所述“虚拟N-项集合”中设置虚拟频繁N-项集的个数M的方法具体如下:
虚拟频繁N-项集的个数M满足以下要求:
其中maxload为用户给定的最大负载阈值,SNF为所有订阅的属性集合中包含频繁N-项集的概率。
所述步骤(2)中订阅者选择某一N-项集的方法具体如下:
订阅者检查该订阅的属性集合中是否包含“N-项集合”中的频繁项集:
(1)若不包含“N-项集合”中的频繁项集,从“虚拟N-项集合”随机选择一个虚拟频繁N-项集;
(2)若包含1个“N-项集合”中的频繁项集,该频繁N-项集即为选定的N-项集;
(3)若包含2个或多个“N-项集合”中的频繁项集,选择其中支持度最小的频繁项集,如果支持度最小的频繁项集不止一个,则随机选择其中一个。
所述步骤(2)中订阅者根据选定的N-项集发布订阅的方式如下:
(1)将N-项集中的N个属性根据字典序进行排序;
(2)调用哈希函数,根据排序后的N个属性计算哈希值;
(3)将订阅路由并存储到分布式哈希表DHT网络中对应于该哈希值的节点。
所述步骤(3)中具体方法如下:
(1)检查该事件的属性集合中是否包含“N-项集合”中的频繁项集,若包含n个频繁N-项集,则将这n个频繁N-项集加入“N-项集列表”;n>0;
(2)将“虚拟N-项集合”中的虚拟频繁N-项集全部加入“N-项集列表”;
(3)将“N-项集列表”中每个N-项集的属性根据字典序进行排序;
(4)调用哈希函数,为每个排序后的N-项集计算哈希值;
(5)将事件发布到所有哈希值对应的节点。
所述特征(4)中事件代理根据当前可用带宽、事件大小和匹配的订阅者数目转发事件的方法具体如下:事件代理统计所有与事件匹配的订阅者IP地址和订阅者数目l,并根据当前可用上传带宽W和事件的大小S设置一个转发度D:当l≤D时,事件代理通过point-to-point方式直接将事件转发给各订阅者;当l>D时,事件代理将订阅者分为K个分组,K=D,从每个分组中选择一个节点作为leader,并将事件和分组成员IP列表分别转发给各leader,由leader负责该组内事件的转发;Leader节点收到消息后有两个选择:一是将事件直接转发给IP列表中除自身以外的其他节点;二是将IP列表中的节点进一步划分分组进行转发。
基于历史记录数据挖掘的发布和订阅方法,其特征在于:所述转发度D的设置方法具体如下:
其中W为事件代理当前可用带宽,S为事件大小。
所述特征(5)中负载均衡方法具体如下:
当负责某一频繁N-项集FI的事件代理RPFI的匹配负载较大时:
(1)订阅的路由和存储
根据订阅的路由和存储策略,当某一订阅条件Sub需路由并存储到RPFI时,将FI中的属性以不同顺序排序,根据排序后的属性分别计算哈希值,然后随机选择其中一个哈希值,并将订阅路由并存储到该哈希值对应的节点。
(2)事件的发布
当事件e中包含FI时,首先根据事件的发布策略将事件发布到除RPFI之外的其它事件代理,然后将FI中的属性以不同顺序排序,并根据排序后的属性分别计算哈希值,将事件e发布到所有哈希值对应的节点。
本发明与现有技术相比的优点在于:本发明提出了一种基于历史记录数据挖掘的发布和订阅方法,通过对支持度小的属性组合进行合并,在负载均衡和事件的发布开销之间取得了良好的折中。综合来讲,本发明的主要优势在于:不依赖于所使用的overlay(专有名词,一般译为重叠网)架构,实现简单,可移植性强;通过订阅者感兴趣的属性集合确定事件代理,提高了事件代理上订阅的相关性,进而可以利用订阅间的覆盖关系提高匹配效率;在负载均衡和事件的发布开销之间取得了较好的折中,系统整体性能大大提升。
附图说明
图1为本发明实现流程图;
图2为本发明中对订阅的历史记录进行数据挖掘实现流程图;
图3为RP节点上存储的订阅数目;
图4为每个RP节点上占用的匹配时间;
图5为系统中事件延迟时间的概率分布图;
图6为系统中节点转发数据量的概率分布图。
具体实施方式
为了更好地理解本发明,先对一些基本概念进行一下解释说明。
发布订阅系统模型:S={A1,A2,…,An},其中Ai表示某一属性,n为系统中属性总数。
事件(event):e={A1=c1,A2=c2,…,An=cn},其中ci表示属性值,如果事件中没有明确指明某一属性的值,则默认该属性取NULL。
订阅(subscription)用谓词表示,例如sub=(A1=v1)∩(v2≤A3≤v3),如果subscription中没有对某一属性的值进行限定,表明该属性取值范围内的任意值都符合订阅者的兴趣(但不包括NULL)。
事件与订阅匹配:事件中每个属性的取值均满足订阅中对该属性的约束条件。例如,若事件e={A1=c1,A2=c2,…,An=cn}与sub=(A1=v1)∩(v2≤A3≤v3)匹配,则要求事件e中A1和A3的属性值满足sub中的对这两个属性的约束条件。
如图2所示,对订阅的历史记录进行数据挖掘,过程如下:
(1)提取历史记录中每个订阅的属性集合,例如某一订阅sub=(A1=v1)∩(v2≤A3≤v3),则该订阅包含的属性集合可以表示为Attrsub={A1,A3}。
(2)将所有订阅的属性集合作为事务,给定最小支持度阈值minsup,使用Apriori或FP-Growth等算法计算频繁项集及其支持度。
对订阅的历史记录进行数据挖掘获得的频繁项集可能包含不同的属性个数,例如三个频繁项集:FI1={A1,A2},FI2={A2,A3},FI3={A1,A2,A3}。为了实现计算DHT节点哈希值时的一致性,仅选择包含某一属性个数的频繁项集,选择方式如下:
(1)统计所有频繁项集包含的属性个数。
(2)若在所有频繁项集中,频繁k-项集(包含属性个数为k的频繁项集)的数目最多,则将k记为N,将所有频繁k-项集的集合记为“N-项集合”。
从非频繁N-项集(包含属性个数为N,但不是频繁项集的项集)中随机选择M个组成“虚拟N-项集合”,这些被选定的非频繁N-项集称作虚拟频繁N-项集。M的个数满足以下要求:
其中maxload为用户给定的节点最大负载阈值,SNF为所有订阅的属性集合中包含频繁N-项集的概率。
“N-项集合”、各频繁N-项集的支持度以及“虚拟N-项集合”确定后将被分发到系统中的每个节点。订阅者和发布者将会根据这些信息发布订阅和事件。
系统组网
为了充分利用每个节点的计算资源,实现分布式的匹配,以DHT的方式进行节点组网。由于本发明不依赖于所采用的DHT组网方法,因此在具体应用时可根据实际情况选择组网方法,例如Chord、Can、Pastry等。
当新节点加入时,根据所选用的组网方法进行初始化,并从已有节点下载“N-项集合”、各频繁N-项集的支持度以及“虚拟N-项集合”。
订阅的路由和存储
当产生一个订阅时,订阅者根据某一N-项集发布订阅,该N-项集的选择过程如下:
订阅者检查该订阅的属性集合中是否包含“N-项集合”中的频繁项集:
(1)若不包含“N-项集合”中的频繁项集:
从“虚拟N-项集合”随机选择一个虚拟频繁N-项集。
(2)若包含1个“N-项集合”中的频繁项集:
该频繁N-项集即为选定的N-项集。
(3)若包含2个或多个“N-项集合”中的频繁项集:
选择其中支持度最小的频繁项集,如果支持度最小的频繁项集不止一个,则随机选择其中一个。选择支持度最小的频繁项集是为了实现事件代理间的负载均衡。
选定N-项集后,订阅的具体发布方式如下:
(1)将N-项集中的N个属性根据字典序进行排序;
(2)调用哈希函数,根据排序后的N个属性计算哈希值;
(3)将订阅路由并存储到DHT网络中对应于该哈希值的节点。
在发布订阅的同时,订阅者记录每个订阅的存储节点,当退订某一订阅时直接根据记录找到相应节点退订该订阅。此外,为了避免节点非正常退出时造成的订阅丢失,建议采用DHT中的缓存策略对每个节点上存储的订阅进行备份。
事件的发布
发布者根据一个“N-项集列表”发布事件,该“N-项集列表”形成过程如下:
(1)检查该事件的属性集合中是否包含“N-项集合”中的频繁项集,若包含n(n>0)个频繁N-项集,则将这n个频繁N-项集加入“N-项集列表”;
(2)将“虚拟N-项集合”中的虚拟频繁N-项集全部加入“N-项集列表”。
“N-项集列表”生成后,事件的发布过程如下:
(1)将“N-项集列表”中每个N-项集的属性根据字典序进行排序;
(2)调用哈希函数,为每个排序后的N-项集计算哈希值;
(3)将事件发布到所有哈希值对应的节点。
事件与订阅的匹配
事件代理每接收一个事件即调用匹配算法将该事件与存储在本节点上的订阅进行匹配,然后将事件转发给所有匹配的订阅者。需要指出的是,由于采用本发明后大部分事件代理上存储的订阅具有很强的相关性,易于形成覆盖关系,所以建议使用基于覆盖关系的匹配算法对事件和订阅进行匹配。
事件的分发
事件的分发过程是指事件代理将事件转发给所有匹配的订阅者的过程。事件代理统计所有与事件匹配的订阅者IP地址(与订阅一起发送到事件代理)和订阅者数目l,并根据当前可用上传带宽W和事件的大小S设置一个转发度D:
(1)当l≤D时:
事件代理通过IP地址直接将事件转发给各订阅者。
(2)当l>D时:
事件代理将订阅者分为K(K=D)个分组,从每个分组中选择一个节点作为leader,并将事件和分组成员IP列表通过IP地址分别转发给各leader,由leader负责该组内事件的转发。Leader节点收到消息后有两个选择:一是将事件直接通过IP地址转发给IP列表中除自身以外的其他节点;二是将IP列表中的节点进一步划分分组进行转发。
负载均衡策略
当负责某一频繁N-项集FI的事件代理RPFI的匹配负载较大时,可以通过增加事件代理个数的方式来降低节点负载,实现节点间的负载均衡,具体方式如下:
(1)订阅的路由和存储:
根据订阅的路由和存储策略,当某一订阅条件Sub需路由并存储到RPFI时,将FI中的属性以不同顺序排序,根据排序后的属性分别计算哈希值,然后随机选择其中一个哈希值,并将订阅路由并存储到该哈希值对应的节点。例如,负责频繁3-项集{A1,A2,A3}的事件代理负载较大,当订阅需路由到该节点时,分别根据A1A2A3、A1A3A2、A2A1A3、A2A3A1、A3A1A2、A3A2A1计算哈希值,并随机选择其中一个哈希值路由订阅。
(2)事件的发布:
当事件e中包含FI时,首先根据事件的发布策略发布事件(负责FI的事件代理除外),然后将FI中的属性以不同顺序排序,并根据排序后的属性分别计算哈希值,将e发布到所有哈希值对应的节点。例如,负责频繁3-项集{A1,A2,A3}的事件代理负载较大,当事件中包含该频繁3-项集时,首先根据事件的发布策略发布事件(负责频繁3-项集{A1,A2,A3}的事件代理除外),然后分别根据A1A2A3、A1A3A2、A2A1A3、A2A3A1、A3A1A2、A3A2A1计算哈希值,并将事件发布到所有哈希值对应的节点。
具体实施例
在OverSim仿真平台上搭建仿真系统,将本发明中算法(基于数据挖掘的发布订阅系统,Data Mining based Publish/Subscribe System,SMPSS)与Ferry和Eferry进行对比。
在该发布/订阅系统中共有七个属性,其定义为:
S={[Date:string,2/Jan/98,31/Dec/02],
[Symbol:string,“aaa”,“zzz”],
[Open:float,0,500],
[Close:float,0,500],
[High:float,0,500],
[Low:float,0,500],
[Volume:integer,0,310000000]}.
订阅生成模板为6个,分别为:
T1={(Symbol=P1)∩(P2≤Open≤P3)},概率为20%;
T2={(Symbol=P1)∩(Low≤P2)},概率为25%;
T3={(Symbol=P1)∩(High≥P2)},概率为30%;
T4={(Symbol=P1)∩(Volume≥P2)},概率为10%;
T5={(Volume≥P1)},概率为5%;
T6={Date≥P1(50%)∩Symbol=P2(50%)∩P3≤Open≤P4(50%)∩P5≤Close≤P6(50%)∩High≥P7(50%)∩Low≤P8(50%)∩Volume≥P9(50%)},概率为10%。
在T6中,每个约束条件在订阅中出现的概率是50%,T6总的出现概率为10%。
事件生成模板为7个,分别为:
E1={Date=P1,Symbol=P2,Open=P3,Close=P4},概率为10%;
E2={Date=P1,Symbol=P2,High=P3,Low=P4},概率为5%;
E3={Date=P1,Symbol=P2,Volume=P3},概率为10%;
E4={Date=P1,Symbol=P2,Open=P3,Close=P4,High=P5,Low=P6},概率为5%;
E5={Date=P1,Symbol=P2,Open=P3,Close=P4,Volume=P5},概率为30%;
E6={Date=P1,Symbol=P2,High=P3,Low=P4,Volume=P5},概率为20%;
E7={Date=P1,Symbol=P2,Open=P3,Close=P4,High=P5,Low=P6,Volume=P7},概率为20%。
给定最小支持度阈值minsup=5%,根据订阅模板和频繁项集的定义可得,在本专利系统中,N=2,“2-项集合”为{{Symbol,Open},{Symbol,Low},{Symbol,High},{Symbol,Volum}},“2-项集合”中各频繁2-项集的支持度依次为:20%,25%,30%,10%。给定节点最大负载阈值maxload=5%,由于SNF=85%,则根据公式:
“虚拟2-项集”中虚拟频繁2-项集的数目M取3,本发明试验中三个虚拟频繁2-项集分别为:{Open,Close},{High,Low},{Date,Volume}。
举例说明订阅发布过程。假如某一订阅sub1={(Symbol=P1)∩(Low≤P2)},由于该订阅中包含且仅包含一个频繁2-项集{Symbol,Low},则将Symbol和Low根据字典序排序后得到LowSymbol,然后根据字符串“LowSymbol”计算哈希值,最后将sub1路由并存储到DHT网络中中该哈希值对应的节点。假如某一订阅sub2={(Volume≥P1)},由于该订阅中不包含“2-项集合”中的频繁项集,则随机选择一个虚拟频繁2-项集,例如{Open,Close},根据字典序排序后得到字符串“CloseOpen”,然后根据该字符串计算哈希值,并将sub2路由并存储到overlay中该哈希值对应的节点。
举例说明事件的发布过程。假如事件e={Date=P1,Symbol=P2,Open=P3,Close=P4,High=P5,Low=P6},则该事件包含频繁2-项集{Symbol,Open}和{Symbol,High},将这两个频繁2-项集和三个虚拟频繁2-项集{Open,Close},{High,Low},{Date,Volume}一起组成“N-项集列表”,然后将列表中每个项集根据字典序排序得到5个字符串:“OpenSymbol”、“HighSymbol”、“CloseOpen”、“HighLow”和“DateVolume”。根据这5个字符串分别计算哈希值,并将事件e发布到这5个哈希值对应的节点。
仿真系统中节点数目设置为1024个,系统产生的订阅数为10240个(平均每个节点10个),生成的事件数目为102400个(平均每个节点100个)。
图3为RP(本专利中的事件代理)节点上存储的订阅数目。由于Eferry中RP数目较多,仅从中选择存储订阅数目最多的前10个。从图3中可以看出,仅从存储的订阅数目来讲,DMPSS的负载均衡性能仅比Ferry-Rnd稍差,但是优于Ferry-Pred和Eferry。
图4为每个RP节点上占用的匹配时间,即所有事件匹配时间的和。该指标可以更加客观的描述节点用于匹配的资源。从图中可以看出DMPSS的负载均衡能力仅次于Ferry-Rnd,但是优于Ferry-Pred和Eferry。当应用了本发明的负载均衡策略后(DMPSS+LB),DMPSS的负载均衡能力进一步提升,且每个节点上的负载均低于Ferry-Rnd中的节点。
图5为系统中事件延迟时间的概率分布图。从图中可以看出,DMPSS可以大大减小事件到达订阅者所需时间,提高了整个系统性能。
图6为系统中节点转发数据量的概率分布图。节点转发数据量越小时,节点的负载越小,且整个系统的带宽消耗也越小。从图中可知,采用DMPSS时,节点的转发数据量最小,整个系统的带宽消耗最小。
综合来讲,DMPSS具有较好的负载均衡能力,能够大大减小事件到达订阅者的时间,并且能够降低整个系统的带宽消耗,因此其综合性能优于Ferry和Eferry,具有良好的应用前景。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种基于历史记录数据挖掘的发布和订阅方法,其特征在于实现步骤如下:
(1)对订阅的历史记录进行数据挖掘,确定合适的N、“N-项集合”、各频繁N-项集的支持度以及“虚拟N-项集合”,具体实现如下:
(11)提取历史记录中每个订阅的属性集合;
(12)将订阅的属性集合作为事务,根据给定的最小支持度阈值计算频繁项集;当某一项集的支持度大于该最小支持度阈值时将这一项集称为频繁项集,频繁N-项集是指包含N个属性的频繁项集;
(13)统计所有频繁项集包含的属性个数;
(14)若在所有频繁项集中,频繁k-项集的数目最多,则将k记为N,将所有频繁k-项集的集合记为“N-项集合”;
(15)从非频繁N-项集即包含属性个数为N,但不是频繁项集的项集中随机选择M个组成“虚拟N-项集合”,这些被选定的非频繁N-项集称作虚拟频繁N-项集;
(2)订阅者根据订阅的属性集合、“N-项集合”、各频繁N-项集的支持度和“虚拟N-项集合”选择某一N-项集,并根据该N-项集发布订阅;
(3)发布者根据事件的属性集合、“N-项集合”和“虚拟N-项集合”形成一个“N-项集列表”,并根据该列表发布事件;
(4)事件代理根据当前可用带宽、事件大小和匹配的订阅者数目转发事件,转发事件的方式包括两种:直接转发和基于分组的转发,所述直接转发是指事件代理将事件直接发送给每个订阅者;所述基于分组的转发指事件代理将订阅者分为几个分组,并将事件转发给每个分组中的一个订阅者,即组长leader,由该leader将事件转发给分组中的其它订阅者;
(5)当负责某一频繁N-项集的事件代理匹配负载大于某一给定匹配负载阈值时,通过增加事件代理个数的方式来降低节点负载,实现节点间的负载均衡。
2.根据权利要求1所述的基于历史记录数据挖掘的发布和订阅方法,其特征在于:所述“虚拟N-项集合”中设置虚拟频繁N-项集的个数M的方法具体如下:
虚拟频繁N-项集的个数M满足以下要求:
其中maxload为用户给定的最大负载阈值,SNF为所有订阅的属性集合中包含频繁N-项集的概率。
3.根据权利要求1所述的基于历史记录数据挖掘的发布和订阅方法,其特征在于:所述步骤(2)中订阅者选择某一N-项集的方法具体如下:
订阅者检查该订阅的属性集合中是否包含“N-项集合”中的频繁项集:
(1)若不包含“N-项集合”中的频繁项集,从“虚拟N-项集合”随机选择一个虚拟频繁N-项集;
(2)若包含1个“N-项集合”中的频繁项集,该频繁N-项集即为选定的N-项集;
(3)若包含2个或多个“N-项集合”中的频繁项集,选择其中支持度最小的频繁项集,如果支持度最小的频繁项集不止一个,则随机选择其中一个。
4.根据权利要求1所述的基于历史记录数据挖掘的发布和订阅方法,其特征在于:所述步骤(2)中订阅者根据选定的N-项集发布订阅的方式如下:
(1)将N-项集中的N个属性根据字典序进行排序;
(2)调用哈希函数,根据排序后的N个属性计算哈希值;
(3)将订阅路由并存储到分布式哈希表DHT网络中对应于该哈希值的节点。
5.根据权利要求1所述的基于历史记录数据挖掘的发布和订阅方法,其特征在于:所述步骤(3)中具体方法如下:
(1)检查该事件的属性集合中是否包含“N-项集合”中的频繁项集,若包含n个频繁N-项集,则将这n个频繁N-项集加入“N-项集列表”;n>0;
(2)将“虚拟N-项集合”中的虚拟频繁N-项集全部加入“N-项集列表”;
(3)将“N-项集列表”中每个N-项集的属性根据字典序进行排序;
(4)调用哈希函数,为每个排序后的N-项集计算哈希值;
(5)将事件发布到所有哈希值对应的节点。
6.根据权利要求1所述的基于历史记录数据挖掘的发布和订阅方法,其特征在于:所述步骤(4)中事件代理根据当前可用带宽、事件大小和匹配的订阅者数目转发事件的方法具体如下:事件代理统计所有与事件匹配的订阅者IP地址和订阅者数目l,并根据当前可用上传带宽W和事件的大小S设置一个转发度D:当l≤D时,事件代理通过point-to-point方式直接将事件转发给各订阅者;当l>D时,事件代理将订阅者分为K个分组,K=D,从每个分组中选择一个节点作为leader,并将事件和分组成员IP列表分别转发给各leader,由leader负责该组内事件的转发;leader节点收到消息后有两个选择:一是将事件直接转发给IP列表中除自身以外的其他节点;二是将IP列表中的节点进一步划分分组进行转发。
7.根据权利要求6所述的基于历史记录数据挖掘的发布和订阅方法,其特征在于:所述转发度D的设置方法具体如下:
其中W为事件代理当前可用带宽,S为事件大小。
8.根据权利要求1所述的基于历史记录数据挖掘的发布和订阅方法,其特征在于:所述步骤(5)中负载均衡方法具体如下:
当负责某一频繁N-项集FI的事件代理RPFI的匹配负载较大时:
(1)订阅的路由和存储
根据订阅的路由和存储策略,当某一订阅条件Sub需路由并存储到RPFI时,将FI中的属性以不同顺序排序,根据排序后的属性分别计算哈希值,然后随机选择其中一个哈希值,并将订阅路由并存储到该哈希值对应的节点;
(2)事件的发布
当事件e中包含FI时,首先根据事件的发布策略将事件发布到除RPFI之外的其它事件代理,然后将FI中的属性以不同顺序排序,并根据排序后的属性分别计算哈希值,将事件e发布到所有哈希值对应的节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410012762.3A CN103729461B (zh) | 2014-01-12 | 2014-01-12 | 一种基于历史记录数据挖掘的发布和订阅方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410012762.3A CN103729461B (zh) | 2014-01-12 | 2014-01-12 | 一种基于历史记录数据挖掘的发布和订阅方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103729461A CN103729461A (zh) | 2014-04-16 |
CN103729461B true CN103729461B (zh) | 2017-02-01 |
Family
ID=50453535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410012762.3A Active CN103729461B (zh) | 2014-01-12 | 2014-01-12 | 一种基于历史记录数据挖掘的发布和订阅方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103729461B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017214813A1 (zh) * | 2016-06-13 | 2017-12-21 | 深圳天珑无线科技有限公司 | 一种分布式网络的消息回复方法、节点及系统 |
GB201709848D0 (en) | 2017-06-20 | 2017-08-02 | Nchain Holdings Ltd | Computer-implemented system and method |
CN108197138A (zh) * | 2017-11-21 | 2018-06-22 | 北京邮电大学 | 在发布/订阅系统中发布信息匹配订阅信息的方法及系统 |
CN110110269B (zh) * | 2019-04-09 | 2023-04-18 | 深圳前海微众银行股份有限公司 | 一种基于区块链的事件订阅方法及装置 |
US12058025B2 (en) | 2020-01-06 | 2024-08-06 | Essence Security International (E.S.I.) Ltd. | Hierarchical resource constrained network |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1625119A (zh) * | 2004-12-09 | 2005-06-08 | 中国科学院软件研究所 | 构建于结构化P2P网络之上的pub/sub系统的路由方法 |
CN1664831A (zh) * | 2005-03-28 | 2005-09-07 | 中国科学院软件研究所 | 支持异构事件的基于rdf的事件发布/订阅方法 |
CN102819569A (zh) * | 2012-07-18 | 2012-12-12 | 中国科学院软件研究所 | 一种分布交互式仿真系统中的数据匹配方法 |
-
2014
- 2014-01-12 CN CN201410012762.3A patent/CN103729461B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1625119A (zh) * | 2004-12-09 | 2005-06-08 | 中国科学院软件研究所 | 构建于结构化P2P网络之上的pub/sub系统的路由方法 |
CN1664831A (zh) * | 2005-03-28 | 2005-09-07 | 中国科学院软件研究所 | 支持异构事件的基于rdf的事件发布/订阅方法 |
CN102819569A (zh) * | 2012-07-18 | 2012-12-12 | 中国科学院软件研究所 | 一种分布交互式仿真系统中的数据匹配方法 |
Non-Patent Citations (6)
Title |
---|
A Peer-to-Peer Approach to Content-Based Publish/Subscribe;Wesley W.Terpstra et al.;《Proceedings of the 2nd international workshop on Distributed event-based systems》;20031231;第1-8页 * |
Ferry:A P2P-Based Architecture for Content-Based Publish/Subscribe Service;Yingwu Zhu et al.;《IEEE Transaction on Parallel and Distributed Systems》;20070531;第18卷(第5期);第672-685页 * |
Scalable Content-Based Publish/Subscribe Service over Structured Peer-to-peer Nerworks;Xiaoyu Yang et al.;《Proceedings of the 15th Euromicro International Conference on Parallel,Distributed and Network-Based Processing》;20071231;第171-178页 * |
Stabilizing Distributed R-Trees for Peer-to-Peer Content Routing;Silvia Bianchi et al.;《IEEE Transaction on Parallel and Distributed Systems》;20100831;第21卷(第8期);第1175-1187页 * |
基于兴趣划分的内容发布订阅系统关键算法;逯鹏等;《北京航空航天大学学报》;20060831;第32卷(第8期);第992-997页 * |
基于模式覆盖的仿真数据匹配算法;屈树谦等;《计算机仿真》;20121231;第29卷(第12期);第139-143页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103729461A (zh) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | Fog-computing-enabled cognitive network function virtualization for an information-centric future Internet | |
CN103729461B (zh) | 一种基于历史记录数据挖掘的发布和订阅方法 | |
Zhang et al. | Enhancing the transmission efficiency by edge deletion in scale-free networks | |
Chen et al. | Enabling disconnected transitive communication in mobile ad hoc networks | |
CN101719932B (zh) | 自动服务组合的系统及方法 | |
Tian et al. | Efficient federated DRL-based cooperative caching for mobile edge networks | |
Park et al. | Fine‐grained traffic classification based on functional separation | |
Chattopadhyay et al. | A scalable and approximate mechanism for web service composition | |
US9565266B2 (en) | Broker facilitated peer-to-peer publisher collaboration in a publish-subscription environment | |
CN102325093B (zh) | 一种结构化p2p网络中的路由系统构建方法 | |
Xiaoqiang et al. | An in-network caching scheme based on betweenness and content popularity prediction in content-centric networking | |
Singh et al. | Efficient content retrieval in fog zone using Nano‐Caches | |
Mohd et al. | Towards a flow-based internet traffic classification for bandwidth optimization | |
Yeferny et al. | An efficient peer-to-peer semantic overlay network for learning query routing | |
Gupta et al. | Fedfm: Towards a robust federated learning approach for fault mitigation at the edge nodes | |
CN103078872A (zh) | 一种基于assr的自适应种子喷射焦点协议 | |
Noghabi et al. | Optimized query forwarding for resource discovery in unstructured peer-to-peer grids | |
CN104135478B (zh) | 基于xml的元能力管理配置方法 | |
Tang | Comprehensive energy efficient algorithm for WSN | |
Wang et al. | A new genetic-based rumor diffusion model for social networks | |
Ramadhan et al. | Modified Combined LEACH and PEGASIS Routing Protocol for Energy Efficiency in IoT Network | |
Xu et al. | QoS-aware object replica placement in CDNs | |
Chao12 et al. | Prediction-based cache adaptation for named data networking | |
CN111865793A (zh) | 基于功能学习的IPv6网络服务定制化可靠路由系统及方法 | |
SENEVIRATNE | Autonomic Peer-to-Peer service directory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |