论文部分内容阅读
随着云计算和SaaS服务模式的兴起,SaaS服务商需要对大量的服务进行发布,而订购用户也需要根据自己的兴趣进行大量的订购。订购用户可能会经常性的上线、离线以及新加入系统的订购用户会对之前发布的历史事件感兴趣。传统的发布订阅系统无法适应上述应用场景,因此,研究SaaS服务模式下的发布订阅系统的匹配效率与事件缓存是非常有必要的。本文主要研究内容如下: (1)在传统发布订阅系统基础之上,在SaaS模式下,引入了SLA主题概念,提出了基于SaaS的实时匹配算法。该算法通过建立四级约束索引、事件订阅匹配矩阵和订阅小组约束属性矩阵等数据结构,在算法执行过程中,充分利用四级约束索引来加快约束查询速度;将可能匹配成功的订阅归并到有效订阅小组valid_subGroup中来缩小与事件进行匹配的订阅集合规模,并将订阅小组中约束进行分解避免约束与事件的重复匹配,从而减少事件订阅匹配次数,最终实现发布订阅系统整体性能的提升。理论分析与实验结果表明,该算法提高了事件订购的匹配效率,适用于需要大规模地进行事件订阅匹配的SaaS模式下的发布订阅系统。 (2)针对基于SaaS模式的发布订阅系统,提出了一种基于事件热门度的缓存算法,该缓存算法以基于SaaS的实时匹配算法作为历史事件与订购的匹配算法。在设计上,该算法以事件热门度为基础,制定了缓存事件选择策略、缓存代理数量确定策略、事件缓存代理分配策略、缓存代理事件置换策略、缓存代理存储溢出策略和历史事件请求响应策略;在实现上,充分利用代理的存储能力,将所有代理都作为存储代理并赋予存储能力进行历史事件缓存,从而实现高热门度事件所分配缓存代理数量较多,而低热门度事件所分配缓存代理数量较少。算法可以处理缓存代理的存储溢出情况,系统会周期性地选择若干随机发布者来发布探索消息查找存储溢出缓存代理,然后清理溢出缓存代理中的旧的历史缓存事件。对于排名靠前的SaaS服务,该算法可以保证订购用户直接从缓存代理中进行订购。此外,由于事件订购的匹配采用的是基于SaaS的实时匹配算法,在匹配时间效率上进行了优化,因此,在响应订购用户对于历史事件的请求的时间是非常短的,订购用户体验较佳。 (3)设计了一个SaaS模式下的发布订阅原型系统,用以验证基于SaaS的实时匹配算法和基于事件热门度的缓存算法的有效性与高效性。