[发明专利]一种基于内容的发布订阅系统中的事件快速匹配方法有效
| 申请号: | 201610046085.6 | 申请日: | 2016-01-22 |
| 公开(公告)号: | CN105740337B | 公开(公告)日: | 2019-03-12 |
| 发明(设计)人: | 董永强;吕希来 | 申请(专利权)人: | 东南大学 |
| 主分类号: | G06F16/958 | 分类号: | G06F16/958;G06F16/9535 |
| 代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 柏尚春 |
| 地址: | 210096 江苏*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 内容 发布 订阅 系统 中的 事件 快速 匹配 方法 | ||
1.一种基于内容的发布订阅系统中的事件快速匹配方法,其特征在于:包括以下步骤:
步骤一:事件匹配节点建立事件多级索引树和订阅多级索引树;
步骤二:用户在本地对数据进行编码和排序,并将订阅请求或发布事件发送给事件匹配节点;
步骤三:事件匹配节点将接收到的发布事件插入到事件多级索引树中;
步骤四:根据事件多级索引树对订阅表达式进行简化处理,将得到的简化后的谓词插入订阅多级索引树中;
步骤五:针对接收到的订阅请求或者发布事件,找到与之匹配的事件或者订阅候选集合,然后进行直接匹配;
步骤六:完成匹配之后,事件匹配节点将事件按照路由协议发送给对应的订阅者;
所述步骤四中根据事件多级索引树对订阅表达式进行简化处理的具体步骤如下:
步骤1:使用一个操作数栈、一个运算符栈和一个链表对中缀表达式进行处理,操作数栈中存储对应集合的元素个数,运算符栈存储出现过的运算符,链表对表达式进行逐步简化处理,计算逻辑或时不做变化,计算逻辑与时则只保留元素个数少的集合,具体处理步骤如下:
步骤1.1:按顺序读取中缀表达式的每一个字符,并根据字符的不同做出对应的处理,预先设置一个计数器,初始值为-1;
步骤1.2:若字符为‘#’,则计数器的值加1,表示对应的谓词在谓词数组中的下标,使用头插法将计数器的值插入链表;计算能够满足该谓词的事件ID个数,将结果压入操作数栈;
若字符为‘(’,则直接压入运算符栈并插入链表头部;
若字符为‘∧’或‘∨’,则首先将该字符插入链表头部;如果运算符栈是空栈或者其栈顶元素优先级数值小于当前字符,则将当前字符压入栈,否则弹出栈顶运算符,并从操作数栈中弹出两个操作数,根据运算符进行运算,将结果压入操作数栈;重复上述弹出运算符和操作数进行运算的过程直到运算符栈为空栈,或者其栈顶元素优先级小于当前字符,然后将当前字符压入运算符栈;
若字符为‘)’,则将‘)’插入链表头部,取出栈顶运算符,若栈顶运算符不是‘(’,则从操作数栈中弹出两个操作数,根据运算符进行运算,并将结果压入操作数栈,重复上述弹出操作数并进行运算的过程直到遇到‘(’结束;
步骤1.3:若扫描结束,则检查运算符栈,如果该栈非空,取出栈顶元素,并从操作数栈中弹出两个操作数,根据运算符进行运算;重复上述弹出运算符和操作数进行运算的过程直至运算符栈为空栈;
步骤2:在步骤1中出现运算时,如果运算符是‘∨’,将两个集合的元素个数之和近似代替它们并集的元素个数,如果运算符是‘∧’,将两个集合中元素个数较少的一个近似代替它们交集的元素个数,同时删除链表中对应的逻辑与运算符以及元素个数较多的集合;
步骤3:将链表中的逻辑符号以及括号全部删除,得到订阅条件的简化谓词集合。
2.根据权利要求1所述的一种基于内容的发布订阅系统中的事件快速匹配方法,其特征在于,步骤一中建立事件多级索引树的具体步骤如下:事件匹配节点根据事件描述信息建立事件多级索引树,事件多级索引树各级分别为数据类型、属性、值和事件ID;其中对数值类型中的每个值,需要计算当前属性内小于等于该值的事件数量。
3.根据权利要求1所述的一种基于内容的发布订阅系统中的事件快速匹配方法,其特征在于,步骤一中订阅多级索引树各级分别为操作符、属性名称、属性值和订阅ID。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610046085.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:肿瘤标本收集器
- 下一篇:减应力槽式油浆蒸汽发生器
- 内容再现系统、内容提供方法、内容再现装置、内容提供装置、内容再现程序和内容提供程序
- 内容记录系统、内容记录方法、内容记录设备和内容接收设备
- 内容服务系统、内容服务器、内容终端及内容服务方法
- 内容分发系统、内容分发装置、内容再生终端及内容分发方法
- 内容发布、内容获取的方法、内容发布装置及内容传播系统
- 内容提供装置、内容提供方法、内容再现装置、内容再现方法
- 内容传输设备、内容传输方法、内容再现设备、内容再现方法、程序及内容分发系统
- 内容发送设备、内容发送方法、内容再现设备、内容再现方法、程序及内容分发系统
- 内容再现装置、内容再现方法、内容再现程序及内容提供系统
- 内容记录装置、内容编辑装置、内容再生装置、内容记录方法、内容编辑方法、以及内容再生方法





