论文部分内容阅读
发布/订阅(Publish/Subscribe)是一种应用非常广泛的通信模式,无论是在企业内部、企业之间,还是互联网上,都可以发现大量的基于发布/订阅技术的软件和应用(例如,RSS、股票交易软件等等)。随着计算机技术的日益发展,越来越多的应用开始呈现出大规模、动态性等特点,为了控制系统的复杂性,可以让各参与者能够以一种松散耦合的方式进行信息交互和协同工作。而发布/订阅技术能够使信息交互的双方在时间、空间和控制流三个方面都被完全解耦,因此,发布/订阅技术是当前人们研究的一个热点。
为了支持人们越来越复杂的需求,现有的发布/订阅系统在表达能力、效率和可靠性等方面还需要更进一步的研究。特别是随着语义网(SemanticWeb)的不断发展,基于本体(Ontology)的应用会越来越多,也对能够适用于语义网的发布/订阅系统提出了迫切的需求。因此,本文针对大规模的、基于内容的发布/订阅系统中的一些关键技术进行研究,给出了基于OWL的发布/订阅系统的一种实现方法,通过这种方法实现的发布/订阅系统具有高表达能力、高效、可靠的特点,从而为用户日益增长的需求提供一种强大的中间件支持。
本文首先提出了一种基于OWL的发布/订阅系统的概念模型、事件模型和订阅语言,以支持复杂的事件和订阅。我们把语义网技术引入到发布/订阅系统中,利用OWL来表示系统的概念模型,用OWL中的事实来表达事件,利用经过扩展的OWL类描述语言来表示订阅条件。同时,为了说明该模型的表达能力,我们还把Map格式和XML格式的事件和订阅与本文定义的事件和订阅进行了比较。
在大规模的计算环境下,一般会有大量的事件和订阅存在于发布/订阅系统中,因而对匹配算法的效率会有较高的要求。基于以上给出的概念模型、事件模型和订阅语言,本文提出了一种高效的匹配算法。与直接利用通用的推理引擎相比,本文提出的算法采用了预处理的技术,把比较耗时的推理过程集中在系统的初始化阶段完成,并把推理的结果存储在磁盘中,即用空间来换取时间,从而使我们的匹配算法具有较高的匹配效率。
单一的事件服务器的处理能力毕竟是有限的,在面向互联网的发布/订阅系统中,往往会有很多的事件服务器分布在世界各地,这就需要一种具有较强容错能力的发布/订阅系统的路由协议来协调不同事件服务器之间的通信。我们把Kademlia协议与基于OWL的发布/订阅技术结合起来,提出了一种新型的发布/订阅系统的路由协议--KadP,该协议既保持了基于OWL的发布/订阅系统高表达能力的优点,又使发布/订阅系统具有自组织P2P网络的特点,保证系统具有较高的可靠性、可用性以及负载均衡能力。当发布/订阅系统满足一定的条件时,该协议能保证对事件的单次(exactly-once)转发;当发布/订阅系统不满足上述条件时,该协议也能使系统的事件丢失率远远低于已有的路由协议。
最后,本文给出了一个发布/订阅原型系统P2PSOWL,它支持上述概念模型、事件模型和订阅语言,实现了基于它们的匹配算法和路由协议。该系统基于Microsoft.NET平台开发,采用C#语言编写。