[发明专利]用于发布订阅系统的实现历史事件订阅的缓存方法有效
申请号: | 201410075650.2 | 申请日: | 2014-03-04 |
公开(公告)号: | CN103888517B | 公开(公告)日: | 2017-01-18 |
发明(设计)人: | 曹健;于润胜;徐钱元;许文星 | 申请(专利权)人: | 上海交通大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 上海汉声知识产权代理有限公司31236 | 代理人: | 胡晶 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 发布 订阅 系统 实现 历史事件 缓存 方法 | ||
1.一种用于发布订阅系统的实现历史事件订阅的缓存方法,其特征在于,包括如下步骤:
路由表扩充步骤:在各代理节点的路由表中增设缓存路由信息,所述缓存路由信息用于提供能够定位到缓存点的路由信息;
事件处理步骤:当某一代理节点发出一事件时,通过哈希函数进行计算,得到一缓存点参考值;为所述事件附加一消息头,所述消息头中记录了缓存点信息以及订阅路径信息;所述缓存点信息中包括所述缓存点参考值;
事件发布步骤:根据所述消息头中记录的订阅路径信息,将所述事件向对应的订阅节点进行发布;对于发布路径中的每个代理节点,根据所述缓存点参考值判断当前代理节点是否作为缓存点并进行缓存,同时,当前代理节点同步更新对应于所述事件的缓存路由信息;
缓存订阅步骤:某一代理节点发出一缓存请求,所述缓存请求中包含订阅条件;将所述订阅条件与当前代理节点的路由表中预存的过滤条件进行匹配,确定缓存事件;所述缓存事件是指,与订阅条件匹配成功的过滤条件对应的事件;
缓存获取步骤:若当前代理节点的路由表中包含所述缓存事件对应的缓存路由信息,则直接根据该缓存路由信息找到所述缓存事件对应的缓存点,将缓存请求转发到缓存点,获取缓存;若当前代理节点的路由表中不包含所述缓存事件对应的缓存路由信息,则根据所述缓存事件对应的订阅路由信息,将缓存请求发送到下一个代理节点,回转执行缓存获取步骤。
2.根据权利要求1所述的缓存方法,其特征在于,所述哈希函数如公式(1)所示:
所述哈希函数的定义域为事件e的取值范围(a,b),值域为[0,MAX_HOP];其中MAX_HOP是事件分发路径上的代理节点到其根节点的最大距离。
3.根据权利要求2所述的缓存方法,其特征在于,根据所述缓存点参考值判断当前代理节点是否作为缓存点并进行缓存具体为:
当前代理节点收到事件后先将所述缓存点参考值t减1,然后根据缓存点参考值进行判断,若t=0,则将当前代理节点做为缓存点。
4.根据权利要求1所述的缓存方法,其特征在于,所述路由表扩充步骤具体为:
在各代理节点的路由表中增加cache_nexthops字段,使得所述路由表的结构为:
<filter|sub_nexthops|cache_nexthops>
其中,filter是指过滤条件,sub_nexthops记录了与filter匹配成功的事件向订阅节点方向转发的下一跳代理,cache_nexthops记录了与filter匹配成功的缓存请求向缓存点方向转发的下一跳代理。
5.根据权利要求4所述的缓存方法,其特征在于,所述事件发布步骤中,对于事件在发布过程中的当前代理节点,其缓存路由信息的更新方法具体为:
若当前代理节点在缓存点的后方,则将缓存路由信息中的下一跳设置为前驱的代理节点;
若当前代理节点正好为缓存点,则将缓存路由信息中的下一跳设置为当前代理节点自身;
若当前代理节点在缓存点的前方,则将缓存路由信息中的下一跳设置为后继的代理节点。
6.根据权利要求5所述的缓存方法,其特征在于,所述缓存获取步骤中,将缓存请求转发到缓存点获取缓存的方法具体为:
在缓存请求转发到缓存点的过程中依次记录沿途经过的代理节点,记为缓存请求路径;缓存请求到达缓存点后,缓存点将请求的缓存沿缓存请求路径的逆序发送给发出缓存请求的代理节点。
7.根据权利要求1所述的缓存方法,其特征在于,所述事件发布步骤中,若当前代理节点作为缓存点并进行缓存时,进行判断:若当前代理节点的存储空间耗尽,则询问该事件发布路径之外的直接邻居是否尚有可用存储空间;若该邻居有可用存储空间,则将事件转发给该邻居进行缓存。
8.根据权利要求1所述的缓存方法,其特征在于,所述缓存点信息还包括缓存点位置、缓存副本数目以及缓存时间戳,所述缓存点位置、缓存副本数目以及缓存时间戳的初值均为空;对于发布路径中的每个代理节点,若当前代理节点作为缓存点并进行缓存时,更新事件的消息头中记录的缓存点位置、缓存副本数目以及缓存时间戳,同时更新当前代理节点内存储的缓存点位置、缓存副本数目以及缓存时间戳。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410075650.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种气密阀
- 下一篇:一种单频多路径效应探测与缓解方法