(计算机应用技术专业论文)发布订阅系统数据模型的设计与实现.pdf_第1页
(计算机应用技术专业论文)发布订阅系统数据模型的设计与实现.pdf_第2页
(计算机应用技术专业论文)发布订阅系统数据模型的设计与实现.pdf_第3页
(计算机应用技术专业论文)发布订阅系统数据模型的设计与实现.pdf_第4页
(计算机应用技术专业论文)发布订阅系统数据模型的设计与实现.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(计算机应用技术专业论文)发布订阅系统数据模型的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士论文 发布订阅系统数据模型的设计与实现 摘要 随着网络和通信技术的飞速发展,网络中产生了大量的数据信息,这些数据信息 分布在不同的系统中。系统的有效运行需要能够对数据信息高效、灵活、按需的分发, 分布式技术可以用来解决这一问题。目前的分布式系统呈现出规模越来越大、结构越 来越复杂性的趋势,而且具有分散控制、动态性、松散耦合等特点。发布订阅系统 能够使得参与者之间在时间、空间和控制流方面完全解耦合,很好地适应了分布式系 统中信息分发的要求。 现有的发布订阅系统在基于内容的数据模型、匹配算法和路由算法上已经取得 了很多的研究成果,但是系统的表达能力还有所的欠缺。论文针对基于x m l 的发布 订阅系统的关键技术进行研究,利用x m l 数据流解析占用内存小和x m l 格式表达 能力丰富的特点,构建了事件模型和订阅模型,并在此基础上设计了匹配的算法,最 终构建了基于x m l 的发布订阅原型系统,为分布式系统中信息分发提供中间件平台 支持。 论文首先构建了一种基于x m l 的发布订阅系统的数据模型,发布订阅系统的 数据模型决定了系统的表达能力,数据模型包括事件模型和订阅模型。事件模型规定 了事件的表达方式,本文中事件采用带有索引的x m l 流来表示,可以利用索引提前 获取x m l 树中后续的节点信息:订阅模型规定了订阅的表达方式和过滤条件,用 x p a t h 查询表达式对应的自动机模型来表示,能够实现事件的有效过滤。 在上述数据模型的基础上,需要实现快速和高效的匹配算法。本文匹配算法的根 本思想是利用x m l 事件流驱动自动机状态改变到达接受状态,以获取对应的订阅者。 将多个订阅条件的非确定有限状态自动机n f a 合并,可以合并订阅条件的共享路径, 从而提高了空间和时间效率。在匹配过程中利用建立的索引信息,减少了解析的冗余, 有效地实现了快速的匹配。 最后,论文构建了一个发布订阅原型系统,实现了上述的数据模型和匹配算法。 该系统作为总装( 某部) “十一五”重点预研课题的子课题“x x x 和信息分发关键技术 研究”的一部分,实现了发布订阅关键技术。 关键词:分布式,发布订阅系统,x m l ,过滤算法,原型系统 a b s t r a c t 硕士论文 a b s t r a c t w i t l lt h er a p i dd e v e l o p m e n to fn e t w o r ka n dc o m m u n i c a t i o nt e c h n o l o g y , ag r e a td e a l o fd a t aa n di n f o r m a t i o nh a sb e e ng e n e r a t e d ,w h i c hi sd i s t r i b u t e di nd i f f e r e n ts y s t e m 1 1 1 e l l i g h e f f i c i e n c y , f l e x i b i l i t ya n do n d e m a n do fi n f o r m a t i o nd i s t r i b u t i o n i sn e e d e df o r e f f e c t i v eo p e r a t i o no ft h es y s t e m ,d i s t r i b u t e dt e c h n o l o g yc a nu s e dt os o l v et h i sp r o b l e m a t p r e s e n t ,t h ed i s t r i b u t e ds y s t e m ss h o wat r e n do fi n c r e a s i n gs c a l ea n dm o r ea n dm o r e c o m p l e xs t r u c t u r e ,a n dh a v et h ec h a r a c t e r i s t i c so fd e c e n t r a l i z e dc o n t r o l ,d y n a m i c ,l o o s e l y c o u p l e d t h ep u b l i s h s u b s c r i b ep a r a d i g mc a nm a k et h e i n f o r m a t i o np r o d u c e r sa n d c o n s u m e r sf u l l yd e c o u p l e di nt i m e ,s p a c ea n df l o w ,s oi ti sw e l ls a t i s f i e dt h ed e m a n do f i n f o r m a t i o nd i s t r i b u t i o ni nt h ed i s t r i b u t e ds y s t e m s n ep u b l i s h s u b s c r i b es y s t e m sh a v ea c h i e v e dal o ti nc o n t e n t - b a s e dd a t am o d e l 。 m a t c h i n ga l g o r i t h m sa n dr o u t i n ga l g o r i t h m s ,h o w e v e r ,t h e ya r es t i l l s h o r to fe x p r e s s i o n a b i l i t y n et h e s i sf o c u so nt h ek e yt e c h n i q u eo fp u b l i s h s u b s c r i b es y s t e m sw h i c ha r eb a s e d o nx m l ,t a k e sa d v a n t a g e so ft h el o wm e m o r yi nx m ls t r e a mp a r s i n ga n dt h er i c h e x p r e s s i o n ,d e s i g n st h ee v e n tm o d e la n ds u b s c r i p t i o nm o d e l ,b a s e do nt h i s ,d e s i g n st h e m a t c h i n ga l g o r i t h m ,f i n a l l y , c o n s t r u c t sap r o t o t y p eo fp u b l i s h s u b s c r i b es y s t e m ,w h i c h p r o v i d e si n f r a s t r u c t u r ef o ri n f o r m a t i o nd i s t r i b u t i o no fd i s t r i b u t e ds y s t e m s f i r s t l y , t h et h e s i sc o n s t r u c t sad a t am o d e lo ft h ep u b l i s h s u b s c r i b es y s t e m sb a s e d x m l ,t h ed a t am o d e ld e c i d e st h ee x p r e s s i o na b i l i t yo ft h es y s t e m ,t h ed a t am o d e li n c l u d e s e v e n tm o d e la n ds u b s c r i p t i o nm o d e l ,n l ee v e n tm o d e ld e c i d e sh o wt oe x p r e s st h ee v e n l t h ee v e n ti sd e s c r i b e da sax m ls t r e a m 、析t l li n d e xw h i c hi su s e dt og e tt h ep o s t f i xn o d e s i n f o r m a t i o ni na d v a n c e t h es u b s c r i p t i o nm o d e ld e c i d e st h ee x p r e s s i o no fs u b s c r i p t i o na n d f i l t e rc o n d i t i o n , t h es u b s c r i p t i o ni sd e s c r i b e da san o n d e t e r m i n i s t i cf i n i t ea u t o m a t o n c o r r e s p o n d i n gt ot h ex p a t hq u e r ye x p r e s s i o n ,t h en f a c a l la c h i e v ee f f i c i e n tf i l t e r i n g b a s e do nt h ed a t am o d e ld e s c r i b e da b o v e ,f a s ta n de f f i c i e n tm a t c h i n ga l g o r i t h mi s n e e d e d t h ec o r ei d e ao ft h i sa l g o r i t h mi st ou s et h ee v e n t sg e n e r a t e db yt h ex m l p a r s e rt o d r i v et h et r a n s i t i o n si nt h en f at ot h ea c c e p t i n gs t a t e ,t og e tt h es u b s c r i b e rc o r r e s p o n d i n g t ot h ea c c e p t i n gs t a t e a l lo ft h eq u e r i e sa r ec o m b i n e di n t oas i n g l e ,n o n d e t e r m i n i s t i cf i n i t e a u t o m a t o ni no r d e rt oa l l o wt h es h a r i n go fp r o c e s s i n gf o rq u e r yp a t h s 、i t l lc o m m o n p r e f i x e sa n di m p r o v et h et i m ee f f i c i e n c ya n ds p a c ee f f i c i e n c y i nt h ep r o c e s s ,t h ei n d e xi s u s e dt or e d u c et h ep a r s i n gr e d u n d a n c ya n da c h i e v ef a s tm a t c h i n g f i n a l l y , ap r o t o t y p eo fp u b l i s h s u b s c r i b es y s t e mi sc o n s t r u c t e dw h i c hi m p l e m e n tt h e d a t am o d e la n dm a t c h i n ga l g o r i t h m ,n l es y s t e mi sap a r to ft h er e s e a r c ho ft h ek e y n 硕士论文发布订阅数据模型的设计与实现 t e c h n o l o g yo ft h ex x x a n di n f o r m a t i o nd i s t r i b u t i o n ,w h i c hi sas u bp r o j e c to ft h ek e y p r e - r e s e a r c ho ft h ee l e v e n t hf i v e y e a rp l a n ,t h es y s t e mi m p l e m e n tt h ek e yt e c h n o l o g yo f t h ep u b l i s h s u b s c r i b es y s t e m s k e yw o r d s :d i s t r i b u t e d ,p u b l i s h s u b s c r i b es y s t e m s ,x m l ,m a t c h i n ga l g o r i t h m ,p r o t o t y p e s y s t e m h i 声明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在本 学位论文中,除7 j w 以标注和致谢的部分外,不包含其他人已经发表或 公布过的研究成果,也不包含我为获得任何教育机构的学位或学历而使 用过的材料。与我一同工作的同事对本学位论文做出的贡献均已在论文 中作了明确的说明。 研究生签名:虹 7 j o f 年期加日 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅或 上网公布本学位论文的部分或全部内容,可以向有关部门或机构送交并 授权其保存、借阅或上网公布本学位论文的部分或全部内容。对于保密 论文,按保密的有关规定和程序处理。 研究生虢墨本 砷年朔加e t 硕士论文发布,订阅系统数据模型的设计与实现 1 绪论 i i 研究背景 随着网络和通信技术的飞速发展,以及面向对象技术的日益成熟,产生了以面向 对象技术为主要特征的分布对象技术。而这些分布式技术的广泛应用,在解决分布式 应用难题的同时也导致了系统的规模越来越大,系统变得越来越复杂。在开放网络环 境中的分布式系统包括了成千上万个实体,它们分布于不同物理位置的,之间的联系 也越来越频繁,关系也越来越复杂,使得传统的基于请求应答的一对一的通信已经 不能满足这种大规模的分布式环境。大规模的分布式环境一般采用多对多的通信,这 就要求有更加灵活的通信模型,能够反映实体之间的非耦合特性。 这种新型的分布式计算环境与传统的分布式环境相比,除了具有异构性等共同特 征外,还具有如下的典型特征: 规模大:参与者数量很大,且分布分散,地理上可能位于世界各地。比如自 2 0 0 0 年1 0 月1 日起,在世界范围内已经有超过一百万用户参与了 f o l d i n g h o m e 1 j 项目。 分散控制:在大规模计算环境下,难以有一个集中的控制点,各节点以平等 的方式加入。如果设置集中控制点,则会造成性能瓶颈和可扩展性等问题。 自治性:各参与者都是自治体,有限加入到分布式系统中,并承担有限任务。 动态性:各个参与者可以动态的加入或者退出系统,参与者的数量、位置和 行为都是不固定的,随时可以出现变化。 松散耦合:各参与者以松散耦合的方式进行信息交互和资源共享。某个参与 者的正常工作不依赖于其他特定参与者的存在。 为了适应分布式计算环境的这些特征需求所带来的挑战,从上世界9 0 年代开始, 人们提出了许多技术,包括: 网格( g 砌d ) :近些年来随着网络技术的发展,出现了很多关于网格技术的 研究。其中较有影响的是网格服务框架( o g s a ) ,该框架是一个s o a 的计 算框架,为大规模分布式计算提供了开发标准。 p 2 p :也叫对等计算,p 2 p 技术可以使得众多终端的c p u 资源联合起来,服 务于一个共同的计算。这种计算一般是计算量巨大、数据极多、耗时很长的 科学计算,并且节点可以动态地加入和退出。 中间件:为解决分布异构问题,人们提出了中间件( m i d d l e w a r e ) 的概念。中间 件是位于平台( 硬件和操作系统) 和应用之间的通用服务,这些服务具有标准 的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口 l 1 绪论硕士论文 和协议规范的多种实现。主要的中间件可以分为以下几类远程过程调用 ( r e m o t ep r o c e d u r ec a l l ) 、面向消息的中间件( m e s s a g e o r i e n t e d m i d d l e w a r e ) 、对象请求代理( o b j e c tr e q u e s tb r o k e r s ) 。 w e bs e r v i c e :w e bs e r v i c e 主要是为了使原来各孤立的站点之间的信息能够相 互通信、共享而提出的一种接口。它是一个用于分散和分布式环境下网络信 息交换的基于x m l 的通讯协议。这有助于大量异构程序和平台之间的互操 作性,从而使存在的应用程序能够被广泛的用户访问。 但是实践证明上述没有很好地解决节点之间以松散耦合的方式进行通信的问题, 只是从不同的角度提出一些解决办法。文献【2 】提出从时间解耦、空间解耦和控制流 解耦三个方面来刻画通信机制( 也称为通信范型) 的松耦合和异步能力。所谓时间解 耦是指交互双方并不需要同时处于活跃状态;空间解耦是指交互双方交互时并不需要 相互了解,并不需要对方的地址;控制流解耦是指交互双方在交互时并不阻塞各自的 控制流程。随着应用环境从局域、封闭和静态走向广域、开放和动态,在通信机制上 实现时间、空间和控制流解耦是必然的趋势。 而发布订阅( p u b l i s h s u b s c r i b e ) 作为一种异步通信机制,在时间、空间和控制 流三方面都提供了完全解耦的特性,近年来得到了学术界和工业界越来越多的重视, 已经成为研究重点。许多标准中间件基于该范型提供了扩展和附加服务。i e e e 的 i c d c s 国际会议从2 0 0 2 年开始设置了名为d i s t r i b u t e de v e n t b a s e ds y s t e m 的 w o r k s h o p ,用以交流p u b l i s h s u b s c r i b e 技术最新研究成果和应用经验。 但是,现有发布订阅的研究尚处于发展阶段,在事件表达、兴趣表达和匹配效 率等方面都还存在着一些问题。因此要使发布订阅系统成为分布式环境下的基础设 施,仍有许多关键技术需要解决。当前发布订阅系统的数据模型大致可以分为基于 渠道、基于主题和基于内容这三种,基于渠道和基于主题的系统表达能力较弱,不能 适应目前灵活表达用户兴趣的需求,基于内容的系统中基于“属性值”对的系统提供 了丰富的表达方式,但仅局限于平面模式,基于x m l 的系统提供了丰富的表达方式, 具有层次,但是随着表达的复杂性增强,匹配的速度也受到影响。本文正是基于这样 的认识,面向大规模分布式环境,对发布订阅系统的数据模型进行研究,对x m l 相 关技术进行了研究,构建了基于x m l 的发布订阅系统的数据模型,并在此基础上设 计相应算法,最后设计了实验原型系统,为分布式环境提供基础支持。 1 2 课题研究背景 本课题来源于总装( 某部) “十一五”重点预研课题 x x x 支撑技术研究”的子 课题“x x x 和信息分发关键技术研究。”旨在针对目前信息分发系统中存在的缺乏信 息主动灵活获取,缺乏统一信息描述,缺乏信息分发关系动态配置等问题,在分布式 2 硕士论文发布订阅系统数据模型的设计与实现 环境下,研究一种基于发布订阅机制的新型信息按需分发体系,实现快速,灵活, 准确的信息按需分发要求。本文所研究内容是“x x x 和信息分发关键技术研究”课题 中发布订阅关键技术的实现。 1 3 国内外研究现状 目前,学术界和工业界从不同侧面对发布订阅相关技术展开了深入了研究,工 业界侧重于实用,主要关注系统的服务质量等;学术界则注重系统的表达能力和对移 动计算环境的支持。 针对系统存在表达能力不足的问题,在发布订阅系统发展过程中出现了各种 各样的系统,其表达能力越来越强。发布订阅系统按事件模型和订阅模型可 以分为基于渠道、基于主题、基于内容、基于类型和混合型5 种,见表1 1 。 在基于内容的系统中,事件不再依据外部的某个标准( 如通道或者主题) 进 行分类,而是根据事件本身的结构或者是内容进行匹配。基于内容的发布 订阅系统又可分为基于m a p 的系统和半结构化语言的x m l 系统。由于x m l 语言作为数据表示和交换的格式,具有可扩展和自描述的特点,网络上越来 越多的数据使用x m l 来表示,x m l 技术被广泛的应用在网络交换中。越来 越多的学者将眼光集中到基于x m l 的发布订阅系统上来。 随着无线以太网、3 g 等移动网络的迅速发展和p d a 等移动计算设备的日益 普及,移动计算得到了高度重视和广泛研究,被认为是信息技术领域的下一 个主要发展方向之一。但是由于无线通信的带宽窄、可靠性差、经常断开连 接等特点,导致开发移动应用比较困难。发布订阅系统异步、匿名等特性非 常适合在移动计算环境下应用。文献 1 3 1 5 介绍了发布订阅系统在移动计算 下的应用。 表1 1 发布订阅系统研究现状 系统类型 分类标准典型系统特点 基于渠道指定渠道 c o r b a 事件服 表达能力弱,实 务规范p 1现简单 基于主题 按主题划分成组t i b 的较早版本、实现简单、有效, i b mm q s e d e s 的较早 但是表达能力弱 版本、s c r i b e 7 1 和 b a y e u x 4 1 基于m a p 根据事件内容 g r y p h o n 表达能力有所提 “属性值”集合进行 s i e n a 高,平面模式 分类 j e d i 和r e b e c a 5 】 3 i 绪论 硕士论文 基于x m lx m l 结构 x f i l t e r t 6 】 丰富的表达能 、v 力,具有层次结构 w e b f i i t e r l 8 j m a t c h m a k e ,l 基于类型 事件被声明为属 e u g s t e r 提出了基 表达过于复杂, 于特定类型的对象 于类型的发布订阅 难以实现匹配,系统 系统【l o 】效率低 混合一般为基于主题j m s 规范【1 1 1 和扩展性差,匹配 与基于m a p 的混合 c o r b a l l 2 1 通知服务困难,效率低 规范 1 4 论文主要研究内容 本文围绕“发布订阅系统”这一主题展开,主要研究内容如下: 研究了发布订阅的模型概念和应用场景,给出了发布订阅系统的多种分类标 准,并进行分类,分析了发布订阅系统中关键技术和研究现状。 研究发布订阅系统的数据模型,介绍了x m l 流的概念和查询解析的方法。 设计出本文发布订阅系统的事件模型和订阅模型,利用x m l 事件流和索引 结构设计了事件模型,利用x m l 查询路径表达式与非确定有限自动机等价 的原理,构建了基于n f a 的订阅模型,并给出了订阅语言的描述。 在本文设计的数据模型基础之上,研究了现有的一些x m l 流查询和过滤算 法,设计了发布订阅系统的过滤算法。 发布,订阅原型系统的设计,基于设计的数据模型和订阅算法,设计了系统的 体系结构,给了具体模块的设计。 1 5 论文组织结构 论文的组织结构如下: 第1 章绪论。主要介绍了研究的背景和课题的研究背景,并分析了目前国内外 研究的现状。 第2 章发布订阅系统概述。介绍了发布订阅系统的概念,包括系统模型、应用 场景和其他相关的通信机制的比较;分析了发布订阅系统的多种分类标准,并且进 行了分类;分析了发布订阅系统的关键技术和q o s 。 第3 章发布订阅系统数据模型的设计。给出了基于内容的数据模型,具体包括 事件模型和订阅模型。首先研究了x m l 和自动机的基本知识,接着在此基础上设计 4 硕士论文 发布订阅系统数据模型的设计与实现 了数据模型,并给出构造的方法。 第4 章发布订阅系统过滤算法的设计。给出了过滤算法,具体包括了事件的处 理、订阅处理和谓词处理,给出了匹配过程描述。 第5 章发布订阅原型系统设计。介绍了原型系统的体系结构和功能模型。实现 了前面设计的数据模型和匹配算法。 第6 章总结与展望。总结了本文的工作,并对本课题进行了展望。 2 发布订阅系统概述硕士论文 2 发布订阅系统概述 2 1 发布订阅系统概念 2 1 1 发布订阅系统模型 发布订阅系统是一种使分布式系统中的各参与者能以“发布订阅”的方式进行交 互的中间件系统。在发布订阅系统中,信息的生产者和消费者之间所交互的信息被 称为“事件( e v e n t ) 9 9 0 信息的生产者将“事件”发送给发布订阅中间件;信息的消费 者则向发布订阅中间件发出一个“订阅条件”,表示对系统中的哪些事件感兴趣;而 发布订阅中间件则保证将所发布的事件及时、可靠地传送给所有对之感兴趣的信息 消费者。信息的生产者称为发布者( p u b l i s h e r ) ,信息的消费者称为订阅者( s u b s c r i b e r ) , 发布者和订阅者统称为客户( c l i e n t ) 。下面给出系统的定义和通信模型,如图2 1 所 示。 发布订阅系统定义:p s = p = p l ,p 2 ,儿表示n 个信息发布者; s = s l ,j 2 ,s 。表示m 个信息订阅者; b = b l ,6 :,b 。表示k 个代理,发布者和订阅者连接到某个代理上; o p p 表示发布者p 的操作集合,典型的包括p u b l i s h ( e ) ,向外发布事件: o p s 表示订阅者s 的操作集合,典型的包括s u b s c r i b e ( s ) 和u n s u b s c r i b e ( s ) ,分别 表示申请订阅和退订操作,有的文献当中也把订阅叫做兴趣或过滤器( f i l t e r ) : o p b 表示代理b 的操作集合,典型的有n o t i f y ( e ) ,表示向订阅者通知事件; 6 发布 订阅退订通知 一一- 一一一 图2 1 发布订阅模型 硕士论文 发布订阅系统数据模型的设计与实现 在图2 1 事件代理有集中式和分布式两种分布方式,集中式只有一个事件代理, 所有的事件都发布到这唯一一个代理,集中式结构具有结构简单的优点,但是随着用 户数量的增加,很容易成为系统的瓶颈,所以大部分发布订阅系统多采用分布式的结 构。 2 1 2 发布册阅系统应用场景 发布订阅系统有着良好的应用场景,早期基于主题的系统已经广泛应用于交通、 金融和军事领域。基于内容的发布订阅系统因为发展尚未成熟,未被广泛应用,但 是从目前已有的应用可以看到广阔的应用场景,下面介绍目前已有的和可以预见的应 用场景。 1 ) 信息分发应用 随着互联网规模的不断扩大、网络信息资源的飞速膨胀、嵌入式数字化设备和移 动终端的逐渐普及,人们获取信息的方式也在慢慢地改变,现在越来越多的人开始关 注个性化、细颗粒的信息获取方式( 推模式) ,而不只是通过传统的浏览器从互联网 上“拉”信息。采用“推模式”信息消费者只需要描述自己的兴趣,当有匹配其兴趣的信 息发布时,信息消费者将得到通知,这样就使得关注某类信息的用户不再需要不停地 切换外界服务访问地址,以便把自己需要的信息从不同的信息提供者那里“拉”回到本 地。 基于订阅方式的信息获取通常有如下几个主要的特点: 第一,参与者数量非常多。 第二,信息通常是由一个参与者同时发送给多个参与者。 第三,信息消费者只对数据的一部分感兴趣,此外兴趣通常是动态变化的。 第四,信息生产者往往不关心信息数据发送给谁,而信息消费者也不关心数据是 从哪发送过来的,只要符合其描述的兴趣即可。 第五,信息消费者通常对历史信息不太感兴趣,它只关心在其提出兴趣之后产生 的信息,与传统的通过搜索引擎和查询数据库获取信息有很大的不同。 第六,信息消费者可能是通过计算能力有限的设备来获取信息上,而且信息消费 者可能是在不停的移动中。 上述这些特点要求系统能够提供较好的异步、匿名、一对多通信能力,传统的 r p c 同步通信范型是紧耦合的,而发布订阅系统可以很好的满足以上要求。 2 ) 企业应用集成e a i ( e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n ) 目前最主要的应用集成方案是基于连接的应用集成和基于信息共享的应用集成。 对于基于信息共享的e a i t 3 1 1 ,关键是如何方便地增加新的参与者和新的功能,同时不 对现有的参与者和服务体系结构产生影响。处理这种问题的有效方式是在参与者之间 7 2 发布订阅系统概述 硕士论文 以信息共享的方式建模,信息生产者只需向外发布自己的信息,而不去关心信息最终 被哪些应用系统消费,信息的消费者只关心信息是不是我需要的,而不关心信息是从 哪些应用系统传递过来的。因为信息的流向具有动态性和不确定性,因此支持异步方 式的发布订阅技术非常适合于基于信息共享的e a i 。 3 ) 协同计算 在协同计算环境中,各参与者往往分布在不同的领域和地域。在一个复杂的流程 中,不同领域的应用程序不能之间通信,而且各个环节之间需要数据的互通。而发布 订阅系统的松散耦合特性则能满足其环境需要,为其提供安全、可靠的数据传输功 能。 4 ) 移动应用 移动应用的最大特点就是移动性以及随之带来的诸多不稳定、不可靠和随意性。 移动性具有的这些问题使得移动用户与远程服务器之间很难保证一个可靠、长时间的 网络连接,因而移动用户与远程服务器之间通常是一种松耦合的关系。在同步激活方 式下,应用认为出现连接断开现象是异常行为,但是在移动环境下出现连接暂时断开 是经常发生的,如果都作为异常进行处理,则系统可能根本就无法正常的工作,因此 异步的、松耦合的发布订阅技术更加适合移动计算环境。 2 1 3 其他相关通信机制 为满足分布式应用场景和信息分发场景的需求,人们提出过许多通信模型。下面 简单介绍一下这些模型,并归纳这些模型在时间解耦、空间解耦和控制流解耦方面的 能力,与发布订阅系统进行比较。 远程过程调用( r p c ) 在基于r p c 的同步通信中,调用者须得到远程对象的引用,通过这个引用来调 用远程方法,调用者在发出调用请求后阻塞自己,直到远程对象返回执行结果。同步 通信模式具有实时性高,用户编程简单的特点,服务器端也容易实现【1 6 】如果请求者的 所有通信请求必须按照确定的顺序完成,后一个请求依赖于前一个请求的结果,那么 同步通信模式是有效的解决途径。但通信双方紧密相关、必须同时处于活动状态、调 用线程阻塞的问题使基于同步通信的应用在某些环境下具有很大的局限性,因此它们 都提供了直接的异步方法调用通信机制。 c o r b a 规范定义了四种异步模型:o n e - w a y 、异步轮询( p o l l ) 、异步回调 ( c a l l b a c k ) 模型、时间无关的异步激活模型( t i m ei n d e p e n d e n ti n v o c a t i o n ,t i i ) 。 c o r b a 可以通过在i d l 定义的方法前面加上“o n e w a y 关键词将一个方法声明为 o n e w a y 方法。根据c o r b a 规范定义,o n e w a y 模型从本质上讲是异步的,这是因为 没有应答返回,客户和服务器之间不能假定有同步行为。o n e w a y 激活模型实现了 c o r b a 对象模型所定义的两种执行语义中的b e s t - e f f o r t 执行语义,即并不保证交付 窖 硕士论文 发布订阅系统数据模型的设计与实现 请求,请求至多执行一次。c o r b a 也支持通过r e p l y h a n d l e r 对象实现异步回调模型 和通过p o l l e r 对象实现异步轮询模型。o n e w a y 异步模型在几乎所有c o r b a 系统中 都得到了广泛的支持,一些c o r b a 系统实现了异步回调和异步轮询,如t a o 、o r b i x 和s m a l l t a l k b r o k e r 等。t i i 机制就是将请求和应答进行包装,加上地址和服务质量信 息,形成一个可以存储转发的消息,在广域网络中部署的若干个路由代理之间进行路 由,最终达到目标对象,目前实现这个功能的c o r b a 产品基本上没有。 分布共享内存( d i s t r i b u t e ds h a r e dm e m o r y ) 分布共享内存范型在分布式环境下提供一个共享数据空间,它类似于操作系统中 进程间通信所使用的共享内存,各信息交互方都可以对该空间进行读写。具有代表性 的例子有l i n d a 的t u p l es p a c e 1 ,它由一组有序的元组构成,对分布系统的所有主 机是可以等价访问的,主机间的通信通过向元组空间添加或者删除元组来实现。可以 使用三个主要的操作:o n t o 从t u p l es p a c e 中导出一个元组,i n o 导入( 并且删除) 一 个元组到t u p l es p a c e ,r e a d ( ) 从t u p l es p a c e 中读取一个元组。 t u p l es p a c e 提供了时间和空间解耦,使用异步通知的t u p l es p a c e 则在生产者方 还可以实现控制流解耦。 消息队列( m e s s a g eq u e u i n g ) 微软的m s m q 1 引、i b m 的w e b s p h e r em q 1 9 1 、b e a 的m e s s a g e q 2 0 ! 等消息中间 件( m o m ) 都是基于消息队列来实现多个应用之间的异步通信。在消息队列机制中 有两个比较重要的概念,一个是消息,一个是队列。消息是通信双方需要传递的信息, 它可以是各式各样的媒体,如文本、声音、图像等。消息可以包含发送和接收者的标 识、时间戳和其它服务质量属性。消息队列是发送和接收消息的公用存储空间。消息 队列的生产者和消费者在时间和空间上都是解耦的,发送方实现了控制流解耦。因为 消费者同步地“拉”消息,在接收方没有实现控制流解耦,某些消息队列系统在接收方 提供了异步消息传递的有限支持,然而这些异步机制在队列系统上下文中扩展性不是 很好,因为为了维护事务、事件和顺序保证需要额外的交互。 表2 1 主要通信范型解耦特性 通信范型空间解耦事件解耦控制流解耦 异步r p c r m i否否生产者解耦 c o r b at i i否 是生产者解耦 共享内存是是生产者解耦 消息队列是是 生产者解耦 发布订阅是是是 表2 1 总结了几种主要的通信范型的解耦特性。从表中可以看出,只有发布订阅 系统能够提供同时在时间、空间和控制流上解耦的能力,因此“发布订阅”技术更适 9 2 发布订阅系统概述硕士论文 合于大量需要异步、松耦合交互的分布式应用系统。 2 2 发布订阅系统分类 发布订阅系统按照不同的特征可以有不同的分类,本文基于系统的不同特点对 发布订阅系统进行分类。 基于通知订阅者方式的分类 1 推模式:在推模式中,发布者发起于订阅者之间的通信,目前多运用在移 动环境中。 2 拉模式:在拉模式中,订阅者负责将信息拉到本地。 3 两者结合的形式。既支持推模式也支持拉模式,根据需要可以灵活的选择。 典型的系统中t i b 采用了推模式,而j d e i 则支持推和拉两种模式。 基于拓扑结构的分类 拓扑结构在很大程度上影响了系统的扩展性,可以分为集中式和分布式【2 1 1 。集中 式在订阅数量很大的时候容易造成系统瓶颈,降低系统效率。目前大规模发布订阅 系统采用分布式结构,分布式结构又可分为层级c s 和p 2 p 。其中层级c s 又包括星 型、总线型、层级、环形和无环图等,典型的总线型系统有t i b ,可以充分利用广播 机制;s i e n a ,g r y p h o n 和j e d i 采用了层级拓扑,事件代理之间构成层级拓扑结构; 在环形拓扑中,代理的连接图是环形的。p 2 p 结构又可分为纯p 2 p 和混合p 2 p ,在纯 p 2 p 中,每个节点同时作为代理和客户端,而混合p 2 p 中的节点只作为代理,客户端 不在p 2 p 网络中。 基于数据模型的分类 目前对发布订阅系统的主要分类方法还是基于系统的数据模型的。数据模型包 括事件模型和订阅模型。按照数据模型不同发布订阅统可以分为基于渠道、基于主 题、基于内容、基于类型和混合型,其中基于内容的又可分为基于m a p 和基于x m l 两种系统。基于渠道的系统中,订阅者通过指定渠道来接受该渠道内的所有信息,不 能指定对渠道内的部分事件感兴趣;基于主题的系统中事件按照主题划分成组,订阅 者指定感兴趣的主题,并获取该主题下的所有事件;基于内容的系统中,订阅者通过 在事件内容上加约束来表达自己的兴趣,其中基于m a p 的系统中约束用三元组的组 合来表示,基于x m l 的系统中约束一般用x p a t h 路径表达式来描述;基于类型的系 统中,事件被声明为特定类型的对象,对象中封装了属性和方法;有的系统既具有基 于主题系统的特点,又具有基于m a p 的特点,被称作混合型系统。 2 3 发布册阅系统的服务质量 1 0 服务质i ( q u a l i t yo f s e r v i c e ) 最初定义为“服务质量是一个综合指标,用于衡量使 硕士论文 发布订阅系统数据模型的设计与实现 用一个服务的满意程度”,i 扫c c i t ( c o n s u l t a t i v ec o m m i t t e eo fi n t e r n a t i o n a lt e l e g r a p h a n dt e l e p h o n e ,现称i t u t ) 给出【jz 。r a c e ( r e s e a r c hi n t oa d v a n c e dc o m m u n i c a t i o nf o r e u r o p e ) 中又对服务质量的进一步定义服务质量描述了关于一个服务的某些性能特 点这些性能特点是用户可见的,它以用户可理解的语言表示为一组参数。这些参数 具有客观值或者主观值”。客观值刻画了系统的行为性能( 如失败概率、吞吐量等) ,主 观值刻画了系统的其它服务性能( 如安全性、优先级等) 。 q o s 是网络系统与用户之间以及网络上互相通信的用户之间关于信息传输与共 享的质的约定,它反映了系统和用户之间的能力和需求关系。在网络传输中的服务质 量通常包括优先级、可靠性等。优先级是指系统能够对数据进行合理的排序,对特定 的数据赋以较高的优先级,从而在网络中有较快的传输进程,并能够实现实时交互。 可靠性是指数据不仅能够到达传输的目的地,而且能保证当数据到达时,数据的完整 性、顺序性和实时性。 对于发布订阅系统,服务质量通常包括持久性、事务性保障和优先级等。 持久性 在r p c 中,远程调用的生命周期很短,如果调用者在一个给定的时间周期内没有 得到应答,它将重新发出请求,而在发布订阅则是不同的。在消息发布订阅系统中, 事件可在没有得到应答时就被发送,同时可在发出一段时间后才被处理,通信各方不 用控制消息是如何被传送的以及何时被处理的。所以此系统就必须提供可靠性及持续 性方面的保证。持久性指的是不仅需要保证一个事件的到达,还需要保证在系统失败 后事件不会丢失的,在系统恢复后可以重新获得。 优先级 发布订阅系统还需要提供优先级保证。优先级指的是对事件进行分类,并保证 订阅者能够按照优先级顺序处理事件,例如一个实时消息就需要具有较高的优先级, 保证在其它消息之前得到立刻的响应和处理。优先级只影响在传输中的消息。对于运 行时执行的优先级则是由应用的调用者来处理,而不是由系统来管理。即在监听同一 个主题的两个订阅者可以以不同的顺序处理这些消息。 事务性 事务通常用于对原子块中的多种操作进行分组,原子块是要么完全执行要么完全 不执行的统一的单位。在消息系统中,事务性保证指的是要么一个完整的消息序列被 发送( 或接收) ,要么消息序列中没有一个消息被发送( 或接收) 。例如,一个发布几个 语义相关的消息的生产者可能就不希望消费者看到传输过程中失败的消息的部分队 列。类似的,一个任务可能会订阅多个消息,处理它们随后提交事务,如果在事务提 交前失败,那么所有的消息在恢复后还是可以使用的。 可靠性 可靠性是发布订阅系统的一个十分重要的特征,用于保证将消息可靠的传递给 1 1 2 发布订阅系统概述硕士论文 一个或者多个订阅用户。因为系统中各通讯实体之间是一种异步关系,就非常需要保 证消息传输的可靠性。 目前现有的发布订阅系统都对上面提到的这些服务质量都有一定的支持,但是 都没有确保这些质量服务都一定满足,关于发布订阅系统的服务质量的研究还在发 展之中,尚未成熟。 2 4 发布订阅系统的关键技术及研究现状 一个典型的发布订阅系统包括拓扑结构、事件模型、订阅模型、匹配算法、路 由算法和提供服务质量保证的设施,其中数据模型、匹配算法和路由算法最为关键。 发布订阅系统的表达能力、效率、可扩展性和服务质量是其主要目标,但这些目标 往往是相互矛盾的,需要根据具体需求权衡利弊,找到合理的平衡点。 2 4 1 数据模型 事件模型定义了事件的数据结构:订阅模型定义了系统能够支持的订阅条件,指 明了订阅者如何表达对事件子集的兴趣:事

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论