




已阅读5页,还剩70页未读, 继续免费阅读
(计算机应用技术专业论文)基于发布订阅的网格数据库实时复制技术及实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
辑i 蛙竹j ij 蒯f r j l q 懈敏榭吁钮f 驯娃k 雎,现 摘整 摘要 随着网格技术和计算环境的发展,网格计算币从科学计算领域推向广阔的企业应用 领域。数掘网格中的网格数据库技术足企业应用中的一个重要研究课题。 本文以一个企业的实际应用为背景,在o g s a d a l 4 0 体系结构的基础上,丌发设计 了基于发布订阅的网格数据库实时复制系统。系统从总体构架上采用了一种分片处理 技术,通过把复制任务拆分成数据发布、数据监控、数据分发、数据导入等不同的子任 务,并分配在不同的服务器上并行执行,有效地减少了数掘访问和计算时间,达到了异 构系统间实时数掘加工复制的目的。 系统的关键技术有:1 ) 基于事务的分片数掘更新机制;2 ) 基于数掘库的缓存机制; 3 ) 基于存储过程的分片计算技术;4 ) 基于时日j 戳,启动阀值和信息通知的数据正确性保 障机制:5 ) 数掘资源虚拟化机制;6 ) 基于o g s a - d a i 的数据访问、集成和传输机制:7 ) 基于g t 3 信息通知的网格服务实时监控机制。 经测试基于发布订阅的复制系统比基于o r a c i e 数掘链路的p u l l 方式的数据复制 系统具有更高的效率和更好的实时性,并满足了企业实际应用需要。 关键词t 数据网格,数掘复制,发布订阅,o g s a - d a i ,数据分片 强j + 矗m ,j 州的1 , 4 髯故槲埔工h f 丝山1 让禾监叽j 地、h 、t id t t t e c h n i q u e sa n di m p l e m e n t a t i o no fp u b l i s h s u b s c r i b e - b a s e dr e a l t i m er e p l i c a t eo f g r i dd a t a b a s e g a ow e i z h o n g ( c o m p u t e ra p p i i c a t i o nt e c h n o l o g y ) d i r e c t e db yc h e n gx u e q i w i t ht h ed e v e l o p m e n to fg r i dt e c h n o l o g ya n dc o m p u t i n ge n v i r o n m e n t ,g r i d c o m p u t i n gi sb e i n gp u s h e di n t ot h ea r e ao fe n t e r p r i s ea p p l i c a t i o nf r o mt h ea r e a o fs c i e n c ec o m p u t i n g i ti sa ni m p o r t a n ta r e ai nt h ee n t e r p r i s ea p p l i c a t i o n s , t h et e c h n o l o g yo fg r i dd a t a b a s ei nt h ed a t ag r i d a c c o r d i n gt oo n ep r a c t i c a la p p l i c a t i o no fa ne n t e r p r i s e ,w ed e s i g nt h e r e a l t i m ed a t ar e p l i c a t es y s t e mo fg r i dd a t a b a s e ,w h i c hb a s e so no g s a d a l 4 0 a n dp u b l i s h s u b s c r i b em o d e l w er e d u c et h et i m eo fd a t aa c c e s sa n dc o m p u t eb y d i v i d i n gt h er e p l i c a t et a s k i n t os u b t a s k s ,s u c ha sd a t ap u b l i s h ,d a t am o n i t o r , d a t ad i s t r i b u t ea n dd a t au p d a t e ,t h e np u tt h e mi n t od i f f e r e n ts e r v e r s ,s ot h e s e s u b t a s k sc a r lr u np a r a l l e l i naw o r d ,t h es y s t e mu s e st h et e c h n o l o g yo fs p l i t t i n g p r o c e s s t h ek e yt e c h n o l o g i e si n c l u d e :1 ) d a t a p a r t i t i o nu p d a t i n gm e c h a n i s mb a s e d o nt r a n s a c t i o n :2 ) c a c h em e c h a o i s mb a s e do nd a t a b a s e :3 ) s p l i t t i n gc o m p u t e t e c h n o l o g yb a s e do ns t o r e dp r o c e d u r e :4 ) c o r r e c tg u a r a n t e em e c h a n i s mb a s e do n t i m e s t a m p ,t h r e s h o l da n dn o t i f i c a t i o n :5 ) d a t ar e s o u r c ev i r t u a l i z a t i o nm e c h a n i s m 6 ) d a t aa c c e s si n t e g r a t i o na n dt r a n s m i tm e c h a n i s mb a s e do no g s a d a i :7 ) r e a l t i m e m o n i t o rm e c h a n i s mb a s e do nn o t i f i c a t i o no fg t 3 t e s tr e s u l t sd e m o n s t r a t et h a tt h es y s t e mt h a tb a s e so nt h ep u b l i s h s u b s c r i b e h a sh i g h e re f f i c i e n c ya n dg o o dr e a lt i m ep r o p e r t ya g a i n s tt h ep u l1 一m e t h o ds y s t e m t h a tb a s e so i lt h eo r a c l ed a t a1 i n k a g e ,a n ds a t i s f i e st h er e q u i r e so ft h e e n t e r p r i s e k e y w o r d s :d a t ag r i d ,d a t ar e p l i c a t e ,p u b l i s h s u b s c r i b e ,o g s a d a i ,d a t a p a r t i t i o n 声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得 的研究成果。就我所知,除了文中特别加以标注和致谢的地方外,论文中 不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研 究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 、 作者签名衫z 冲 嗍纱哆占l7 关于论文使用授权的说明 作者签玉2 华晰签名移凌日期:z 蟛驴 储签够2 平刷僦铲呗吼z 蟛驴 第一章引言 网格技术所要解决的主要问题是如何在一个动念、多单位参与的虚拟组织内 实现资源共享与协同工作“。数掘网格( d a t ag r i d ) 是在计算网格 ( c o m p u t a t i o n a lg r i d ) 的基础上发展起来的网格技术,除具有计算网格的动念 资源共享和协同工作、多研究机构组成的虚拟组织等特点外,对大量数据的分布 处理和分析是数掘网格的主要特点对数掘进行分折、处理当然离不丌数掘库, 网格数掘库( g r i dd a t a b a s e ) 是数据网格的一个重要组成部分。 网格数掘库是对现有数掘库的网格化,基于丌放网格服务体系结构( o g s a ) 提供网格数掘库服务,使网格用户或其他网格服务( g r i ds e r v i c e ) 可通过网格数 掘库服务访问网格中的各种异构数据库,从而达到数据资源的高度共享和协同处 理,对数掘资源的访问更加透明、高效、可靠,网格数掘处理的能力更强,以满 足虚拟组织( v i r t u a lo r g a n i z a t i o n ) 的数据处理需求。 网格数据库的研究现在主要集中在以下几方面:( 1 ) 数据库的存取与集成代 表项目是o g s a - d a i ( o p e ng r i ds e r v i c e sa r c h i t e c t u r e d a t aa c c e s sa n d i n t e g r a t i o n ) ;( 2 ) 分布式查询如p o l a r * 项目、o g s a - d q p ( o p e ng r i ds e r v i c e s a r c h i t e c t u r e d i s t r i b u t e dq u e r yp r o c e s s i n g ) 项目;( 3 ) 数据流处理如 d q u o b ( d y n a m i cq u e r yo b j e c t s ) 项目;另外还有信息检索、科学数据分析等”1 。 实际上,在网格环境中各异构数据库日j 的复制技术也是网格数掘库的一个重要研 究课题,它对数据访问的负载均衡、提高数掘访问性能、降低数据传输丌销和提 高系统的灾难恢复能力等方面都具有非常重要的意义。 目前还没有一个专门的项目针对网格数掘库复制技术进行研究,数据库日j 的 复制一般还依赖于数掘库丌发商提供的技术。但这些技术一般都是同类数掘库问 的复制,有些数掘库产品,如s q l - s e r v e r ,虽然提供了部分异构数据库日j 复制 功能,但也有诸多限制,功能相对较弱。 网格数据库技术的出现为解决动念变化、自主控制、分布、异构数据的透明 访问问题提供了新的方法和思想。 应企业实际应用需要,我们以北京某大规模集成电路加工企业的实际应用环 境为背景,在o g s a d a l 4 0 体系结构的基础上,设计丌发了基于发布订阅的网 格数据库实时复制系统。本系统不仅支持简单的表对表间的数掘复制,而且还支 持复杂的数据加工过程,并町通过客户端实时监控各服务节点的运行状态,很好 得解决了异构系统问的实时数掘复制及监控问题。 1 1 需求 辘i ,坛如t l 剐的l 叫 敌疆,库曩i 付缸劓技术腱史观 1 1 1 企业应用需求 目前很多大型企业都需要在不同的应用系统或系统的不同部分之h 】交换数 掘以加强不同系统之h j 的协作。其中很多数掘交换不是一次性的,而是根掘一 定规则周期性重复进行的,形成不同系统h j 稳定的数据复制关系。 由于有些数掘对于不同的用户或应用有不同的使用形式,当数据规模较大 时,在不同的应用系统中需要对这些数据以不同的形式进行保存。因此,当原始 数掘发生变化后。需要对不同应用系统中的数掘进行更新 受尺:。里产曷 垒 釉器 冒 黾削俐 由 恩 图1 1 系统结构图 如在某大规模集成电路加工企业,因生产和管理需要目前存在多套系统,如 图1 1 所示。这些系统由不同的开发商在不同的时期开发,采用了不同的数掘库 管理系统( 见表1 1 ) 表1 1 相关系统 系统名称说明使h j 数据库 p m s 生产管理系统 o r a c l e 8 1 6 p r o m i s 芯片加l 系统o r a c l e 9 i 0 3 一a t l a s 芯片封装测试系统 o r a c l e 8 1 - 7 安易系统财务管理系统s q l s e r v e r 海天保税系统每芙保税系统 s y b a s e g b t全球事务处理o r a el e 9 1 第一母j i 二 e 述系统n q 没有一个通用的数掘复制体制,而这螳异构的系统f f i j 冈业务关系 又需要进行实时的数掘交换。如生产管理系统( p s ) 需要从芯片加工系统 ( p r o m i s ) 和芯片封装测试系统( 0 3 - a t l a s ) 中获取尘产进度信息一作业完成数、 在制数、投入数,入库数等;0 3 - a t l a s 系统需要通过p m s 系统获取p r o m i s 的入 库数作为其投入数:全球事务处理系统( g b t ) 需要从p m s 、p r o m i s 和0 3 一a t l a s 三个系统中获取生产进度、订单,采购单等信息,并以w e bs e r v i c e 的方式向海 外总公司提供数据等 通过对该公司实际应用环境进行分析,我们发现异构系统日j 的数据复制具有 以下主要特征: ( 1 ) 数掘异构:目标数据与原始数据之间存在着较大的差异。这些差异包括: 数掘管理系统之间的差异,数据在目标数据库和原始数据库中存储类型的差异, 数据模式的差异,不同约束条件的差异等 ( 2 ) 数掘量大:如p r o m i s 系统中的历史记录表h i s t l o t e v e n t s ,记录数达 2 0 6 3 多万条,而且还在不断增长。从如此大的表中进行数据抽取,即使采用索 引等技术也需要较长的时问。如果不对这些数据进行预处理,很难满足实时性要 求,而且会严重影响原系统的性能。 ( 3 ) 实时性要求高:部分数掘需实时进行复制,如p m s 系统需要p r o m i s 系统 和0 3 一a t l a s 系统的实时入库信息、投入信息等。 ( 4 ) 数掘依赖性强:各复制任务问有一定的依赖性。作业完成数、在制数等 表的数据获取,需要基准信息表( m a s t e r _ f 1 0 w ) 这样的一些中日j 数据,而基准 信息表数据的获取也必须作为一个独立的复制任务执行,这样就必须限制这些复 制任务的执行顺序。 ( 5 ) 数据需加工处理:系统间的数掘复制不是简单的拷贝,需要进行复杂的 数据处理,处理类型包括:部分截取、合并、比较计算、增加系统变量或常量等。 因此,复制体制必须支持复杂的数据加工过程。 ( 6 ) 原始数据变化没有明显标记:有些表数据在发生变化时没有明显的表识, 需要复制系统帮助判断原始数据的变化情况,这需要一套高效的监控机制。 ( 7 ) 需多对多复制:一个目标数据表的数据来自于多个系统的多个数掘表, 同时一个表的数据也可能被复制到多个系统的多个表中。如p r o m i s 和0 3 一a t l a s 系统的作业数、在制数等,需同时复制到p m s 和g b t 系统。 以上特征足目前很多大型企业在异构系统问进行数据交换所面临的问题因 为每个系统都有其自治性,因此复制系统的加入不应对原系统有太大的影响,所 以如何实时的监控数据源的变化并在满足数掘正确性、实时性的前提下进行异构 系统日j 的数掘加工转换处理是复制系统要解决的关键问题。为了解决上述问题, 很多企业丌发了钏习数据交换系统或数掘复制系统,以保证数据复制的时效性和 垠卜笸彳hi l 刚的h 恪敏槲埔复h 寸塑制技术,土覆眦 + 敛惟。但山于缺乏支撑平台,系统的丌发成本很高,同时山f :传统丌发厅式e 篮采用同步数抛 f l = 送( p u s h ) 或拉( p u l l ) 方 上,难以满足大规模数掘实时复制 和复杂数据加工的要求。现代企业迫切需要一套通用的、支持复杂数掘加工的实 h r 网格数掘库复制系统 1 1 2 监控网格服务需求 网格服务一般以后台进程的方式运行在服务容器中,其运行状态不易监控, 而网格资源的动态性、复杂性同时也增加了对网格服务进行实时监控管理的复 杂程度传统的对服务状态进行监控的方法是通过只志文件进行观察,发现问题 后进行处理,其实时性和直观性都很差,无法满足实际的应用需要 要以网格服务为基础开发网格数据库复制系统,如何实时地对分布在各个网 格节点上的网格服务进行监控和操作,是复制任务成功运行的关键。如果没有能 力去监控、操作它,再专业的复制功能也不能发挥很好的作用。 1 2 现状 与网格数据库复制技术相关的一些研究主要表现在以下几个方面: 1 2 1 数据库复制技术 在各种大型的数掘库管理系统中都提供了数据复制功能,如o r a c l e 、 s q l s e r v e r 、s y b a s e 、d b 2 等,并且各数据库系统实现数据复制的方式也各不相 同。 ( 1 ) o r a c l e 数据库 o r a c l e 数据库间的复制是依赖于o r a c l e 的数掘链路实现的,通过在一个数 掘库中创建另一个数掘库的数掘链路,实现对另一数掘库的操作;同时通过触发 器,当复制环境中的某一数掘库的复制对象( 如表) 发生变化时,触发存储过程, 实现数掘库间的数掘复制。 o r a c l e 数掘库支持同步复制和异步复制两种方式。在同步复制方式下,复 制环境中各数据库的复制对象时刻保持一致,某一数掘库中发生的变化立即传播 到其它数据库。异步复制采用“存储转发机制”,即当复制环境中某一数据库的 复制对象发生变化时,并不立即传给其它数掘库,而是作为延迟事务被存放在延 迟队列中。每隔一个事先设定的时日j b j 隔,再将所有事务推向其它数据库。 ( 2 ) s q l s e r v e r 数据库 s q l s e r v e r 数掘库则采用出版物、订阅的方式束处理数掘复制。源数掘所 在的服务器是出版服务器负责发靠数据。出版服务器把要发南数掘的所有改变 情况的拷贝复制到分发服务器,分发服务器包含仃一个分发数据库,叮接收数掘 缸争j , 的所有改变,并保存这些改变, 4 把这些改变分发给订阅服务器。在s q l - s e r v e r 巾支持推订阅( p u s h ) 和拉订阅( p u l l ) 两种订阅方式。 ( 3 ) s y b a s e 数掘库 在s y b a s e 数掘库复制系统中,对源数掘库中数据的修改由一个称为同志传 输管理( l o gt r a n s f e rm a n a g e r 简称l t m ) 的进程来监控实现。l t m 将s y b a s e 的 事务闩志传送给复制服务器进程,复制服务器进程根掘复制系统的配置将改变 数据的事务同志从一个复制服务器传送到其它复制服务器。晟后由这些复制服务 器将数据改变传给目标数据库 ( 4 ) 联邦数据库 为了对各种异构的数据资源进行集成访问,i b m 在“6 a r l i c ”项目和d b 2 数 掘库技术的基础上实现了数掘库联邦技术。联邦技术通过提供异构数掘的统一接 口来对它们进行集成访问。在联邦数据库中,i b m 提供了一个复制产品d b 2 d a t a p r o p a g a t o r ,用以在关系数掘库间复制数据d a t a p r o p a g a t o r 自动复制远 程系统问的数掘,避免手工卸装和装入数掘库。对于非d b 2 关系数据源,定义了 c a p t u r e 触发器来捕获对数据源的更改,并将更改写入登台表。在i b m 联邦数掘 库服务器上运行的a p p l y 程序使用该登台表的别名柬将那些更改从登台表复制 到i b m 联邦数据库或另一个非d b 2 关系数掘库中的目标表。 上述几种数据库复制系统中,o r a c l e 数掘库由于是基于数据链路实现数据 复制的,无法直接实现与异构数据问的数据复制,在o r a c l el o g 中虽已丌始支 持网格计算功能,但其技术还是更倾向于o r a c l e 产品之间的集成”。s q l s e r v e r 通过o d b c ( 0 l ed b ) 可支持部分异构数掘j 的复制功能,但有诸多限制,功能相 对较弱,并且只能运行在w i n d o w s 操作系统中,无法满足网格环境中各异构数据 库间的数据复制需要。s y b a s e 复制系统通过s y b a s eo p e ns e r v e r o p e nc l i e n t 应用程序来复制异构数据源,并通过复制代理( r e p l i c a t i o na g e n t ) 集成了常 用的几种数掘源。其实s y b a s e 所采用的方法是一种传统的接口程序方法,其扩 展性较差,用户要想增加一种新的异构数据源就必须自己按s y b a s e 的接口规范 来开发新的应用程序。另外s y b a s e 要想支持数据h n t 的话就必须在源或目标数 据库中进行处理,对异构数据源的集中加工处理无法实现。鞋邦数掘库通过0 8 2 的d a t a p r o p a g a t o r 来复制数掘,对非d b 2 的数据源则通过c a p t u r e 触发器来捕 获数据源的更改,并进行异构系统口j 的复制。联邦数据库所采用的复制技术与 s y b a s e 相似,部是采用接口的方式。要丌发基于d b 2 的异构数据库问的数据复 制就必须非常熟悉d b 2 的数掘访问方法,井按其规范丌发 从以上分析可以看出各种数掘库系统的复制功能都以本数掘库系统为主在 异构性的处理上要么对操作平台的异构性支持不好,要么对数掘源的异构性支持 不好:并且b 功展性蔗、没有一个统一的丌放的杯准,而网格数掘库的一个e 要 墟i 踅如ij 制们h i 再故抛陋喧时世制技术,土噍j 吧 h 标就足对锌种舛构的资源捉供一个f d 一的、丌放的访j u j 和集成标准,冈此各种 号用的数掘j 乍系统的复制功能很脏适应网格环境巾的异构数据库j 的复制需要; 另外,在实际应用中网格数据库的复制功能,不在局限丁简单的异构数掘库叫的 数掘复制大部分应用需要支持复杂的数据加工过程这不仅可以有效地减低各 系统m 的数掘传输量、提高整个系统的效率而且可以在保证原系统自治性的基 础上实现系统功能的二次升级。 1 2 2 网格数据库技术 在各种网格数据库软件中,o g s a d a i ( o p e n g r i ds e r v i c e a r c h i t e c t u r e - d a t aa c c e s sa n di n t e g r a t i o n ) 是最有名的丌源软件之一 o g s a - d a i 是由d t i 资助的e - s c i e n c e 核心项目,由全球网格论坛g g f ( g l o b a lg r i d f o r u m ,h t t p :唧g g f o r g ) 的d a i s w g 工作组( d a t a b a s ea c c e s s a n d i n t e g r a t i o ns e r v i c ew o r k i n gg r o u p ) 和g l o b u s 团队在g l o b u st o o l k i t 3 ( g t 3 ) 的基础上丌发。 g t 3 是o ( ;s a 的一种参考实现,它把丌放网格体系结构和w e b 服务( w e b s e r v i c e ) 结合在一起实现了有状态的可控的网格服务。g t 3 重点解决了网格中的 安全性,信息基础设施、资源管理、通信、故障检查等问题,为网格应用程序提 供了一个良好的运行环境。 o g s a - d a i 则是网格数掘库中日j 件,它对复杂数据的操作进行了封装,提供 了一种统一的网格服务接口,使网格用户或服务在网格环境中通过服务接口,可 方便地访问和集成网格中的各种分散的异构数据源。o g s a d a i 逻辑上由一系列 互相协作的网格服务组成,这些网格服务作为各个数掘库系统的代理,客户端需 要的数据可通过服务代理进行访问。 表1 1 对照表 特征 传统分布式数据系统 网格数据库系统 系统组织一个独立的系统,可能分布在多个独立的系统组成的一个可以 多个不同地理位茕上,但各部协作的独立系统 分不是完全独立的 数掘支持同质数据包括异构数据 数掘组织使用全局概念模式,统一、集各数掘源提供数据服务。可以使用 中对数掘资源管理数据全局模式,但t 要是以提供自 身的数掘描述为主。 访问方式使用全局统一的接口,用统一以服务的方式提供,统一控制的服 的访问控制务( 接口) 的泣册描述 网格数据库系统与传统的分铂式数捌库系统相比,无论从系统组织、数掘支 诳一帝0 i 二 特、数掘组织、访问方式等疗而部不尽相同,其对照关系如表1 1 所目;。 目6 口s a d a i 已州级到5 0 版本,不仅支持对m y s q l ,d b 2 ,o r a c l e 、 p o s t g r e s 、s o ls e r v e r 和x i n d i c e 等各种数掘库的集成访问,而且增加了对目 录文本文件的支持,同时还提供了一种扩展机制,允许用户加入自己的j a v a 程 序以支持更多的数据库管理系统,并与现有的程序进行数掘交换;从功能上 o g s a d a i 也越来越强大o g s a - d a i 以丌放的网格体系结构为我们) r 发网格数据 库应用软件提供了基础功能 1 2 3 基于发布订阅的体系结构 一种新的数据处理模式一发布订阅( p u b l i s h s u b s c r i b e ) 模式,在信息分 发应用中得到了越来越广泛的应用发布订阅模式是一种非常有效的信息分发 方式,发布者产生信息并实时通知外界新信息的到来,订阅者订阅自己感兴趣的 信息,事件分发器则负责把信息分发给所有的订阅者在发布订阅模式中发布 者和订阅者是两个相互独立的实体,由事件分发器把两者连接起来,彼此无需知 道对方的实现细节,实现了时间、空间和位置的松耦合。 发布订阅模式中有拉( p u l l ) 和推( p u s h ) 两种信息交换方式。p u l l 方式 是一种被动的信息交换方式,发布者和订阅者之间实际是一种c s 关系,由订阅 者采用查询方式进行信息的提取,查询频率不易确定,频率过高将导致网络资源 浪费,而过低又无法获得及时数掘;p u s h 方式则采用主动的方式,由事件分发 器主动把新信息推送给所有订阅者,非常适合于分布式环境中实时信息的传递。 目前发布订阅模式主要应用于w e b 应用中海量信息的选择性分发,其实其 松耦合的设计框架、发布订阅两端丌放的系统结构、主动推送数据的思想,同样 适用于网格数据库复制系统中实时信息的复制传递。 1 3 网格数据库实时复制系统概述 网格数掘库实时复制系统借鉴了上述专用数据库复制技术的一些特点,以符 合丌放网格体系结构的o g s a d a i 为基础,采用了基于发布订阅的分布式体系结 构。整个系统分为发布服务、注册服务、分发服务、订阅端和监控服务五大模块。 如图1 2 所示 发稚服务负责数据源的封装,以表为单位把要发钿的数掘源结构信息注册到 注册服务处,供数据订阅者查询,同时监控数据源的变化情况,把新数据实时推 送到分发服务处,并通知分发服务数掘源的更新情况 订阅服务根掘发布者对数掘源的结构描述信息,选择数掘源,编写加工流程, 生成订阅任务,并提交到注册服务处。 注册服务则是数掘发前i 哲和数据订阅者的连接纽带,负责管理保存注册信 强。踅布川剜的f q f 敌删库曩时世川i 憧文j 吧 息j f :舣掘发和服务、订阅任务l l j 的依赖关系及p q 络负我等把订阅任务分发到不 的分发服务上。即调度各复制任务 分发服务负责订阅任务的执行,把各发靠服务描送来的数掘缓存起来,进行 数掘的加工、转换处理,并把输出结果推送到订阅者指定的数掘库中 监控服务负责监控各发斫i 服务和分发服务的运行状态,并把相关信息实时通 知用户或系统管理员,以保证系统正常运行 发布服务和分发服务一般运行在专门的服务器上,以减少对原数掘库系统的 影响,并可根据发布服务和分发服务的数掘量,运行负载和网络负载,配制多个 发布服务器和分发服务器 图1 2 结构示意图 本系统的主要创新点:结构上采用了基于虚拟数据源的发布订阅复制模式, 发布方和订阅方无论从时间、空间和位置上都实现了一种松耦合;复制任务被拆 分成不同的子任务,并分布在不同的服务器上并行执行,有效的缩短了数据加工 时间,提高了整个系统的复制效率;基于o g s a d a i 进行丌发,支持各种异构的 数据源,并符合开放的网格服务体系结构标准,使系统具有了很好地扩展性和适 应性;基于数掘库缓存机制,在分发服务中通过数据库存储过程进行数掘的加工 处理,进一步提高了系统的扩展性和灵活性;基于g t 3 的信息通知机制,很好地 协调了各子任务的执行,保证了复制的实时性;实时监控服务实现了对各服务运 行状态的实时监控,为系统性能分析提供了有力手段。 1 4 论文组织 第二章介绍了o g s a - d a i 的核心技术、复制系统的体系结构、系统的关键技 术及实现;第三章介绍了数掘发却端的主要服务及实现:第四章介绍了数掘订阅 端订阅任务的形成及实现;第五章介绍了分发服务端的体系结构、更新机制、信 息通知机制及主要接口实现等相关技术;第人争对订阅任务的聚类原则、订阅任 象常j 务的分配及注册服务l - 要接口类的实现等作了详细介绍;第七章介绍信息通知机 制的基本原理、监控程序的主要功能及实现等关键技术;第八章对魑于发伽订 阅的网格数掘库复制系统和耩_ 】二o r a c l e 数掘链路的集中式复制系统进行了对比 测试,并分析了二者的差异:第九章总结全文。 9 辘t 。艇如,i i 刚的 符删席嚏时世删 求膻l 电 第二章复制系统的体系结构及其关键技术 基f 发如订阅的网格数据库复制系统,从总体构架上采用了一种分片技术, 包括分片存储,分片计算等,并通过( ) ( ;s i 的信息通知机制使各服务协同工作、 并行执行。提高了整个系统的效率 本章将对o g s a = d a i 的核心技术、复制系统的体系结构、系统的关键技术及 实现等作一介绍以便从总体上了解系统的执行过程 2 1 结构层次概述 要丌发网格环境下的数据库复制系统,必须符合网格服务的开发标准目前, g l o b u st o o l k i t 3 ( g t 3 ) 是开发网格服务程序的事实标准。g t 3 是开放网格服务 基础设施( o p e ng r i ds e r v i c ei n f r a s t r u c t u r e 。o g s i ) 的参考实现,其中提供 了基于刀:放网格服务架构( o p e ng r i ds e r v i c ea r c h i t e c t u r e ,o g s a ) 和w e b 服 务构架构建网格服务的基础平台。o g s a - d a i 则是在g t 3 的基础上开发的数据库 中间件,通过其服务接口,我们可方便地访问和集成网格中各种分散的异构数据 源并在不同的网格服务间传递数据。 为节省丌发成本、减少开发时间并使其符合国际网格丌发标准,网格数据库 复制系统基于o g s a - d a i 和g t 3 进行了丌发,其层次结构如图2 1 所示 图2 1 结构层次图 最底层是g t 3 核心服务,用以创建基本的网格服务:上层是g t 3 的高层服务 和o g s a d a i 的基础服务,用以对网格数掘库的集成访问和在网格服务日j 传递数 掘:而网格复制系统则在两者的基础上丌发。 2 2o g s a d a i 概述 o g s a d a i 的设计目标足提供一种统一的网格服务接口,使网格用户或服务 在网格环境中通过服务接口,可方便地访问和集成网格中的各种分散的异构数据 源,从而达到数掘资源的高度共事。 0 ;f ;巾乜制系统的f i 系结掏成儿足钰上址较 2 2 1 主要接口类 o g s a d a i 提供了四个上要接口类,束实现网格服务问的交互和对数掘的集 成访问。 0 ( 3 s a d a i 服务组注册器( d a i s g r ) d a i s g r 相当于一个服务中心,通过提供服务的网格服务句柄( g s h ) 和服务 的描述信息,o g s a d a i 服务可注册到d a i s g r 中通过d a i s g r 我们可以动态地 搜索自己感兴趣的数据源例如客户可以通过d a i s g r 查询管理特定数据源的网 格数据服务工厂( g d s f ) 的信息 网格数据服务工厂( g r i dd a t as e r v i c ef a c t o r y ,g d s f ) g d s f 是一个工厂服务类,它与特定的数据库相联,主要用来创建可访问特 定数掘源的网格数据服务实例( g d s ) g d s f 还可以在d a i s g r 中发布关于g d s 的信息,如g d s 可使用的活动类( a c t i v i t y ) 、g d s 的s c h e m a 、所使用的类等 g d s f 其实代表了多个数据源,说明了数据源所能提供的能力,在其中可以 配置数据源的名称、位置,访问方式、支持的协议等。 网格数据服务( g r i dd a t as e r v i c e ,g d s ) 代表单独的数据源,使用面向文档的模型来提供对数据源的访问。客户端以 x m l 文档的形式提交数据查询和更新的请求,g d s 执行这些请求并返回包含结果 的x m l 文档。 与g d s f 和d a i g r 不同,g d s 是临时服务。当g d s f 创建它时就给了它一个生 命周期,当生命周期到时它会自动销毁,但用户可根掘需要通过调用 g r i d s e r v i c e 的r e q u e s t t e r m i n a t i o n b e f o r e 和r e q u e s t t e r m i n a t i o n a f t e r 操作 延长其生命周期。 网格数据传输类( g r i dd a t at r a n s p o r t ,g d t ) g d t 负责在网格服务之间或网格服务与用户进程之问传输数据,它被g d s 直 接调用。g d t 类对巨量数掘的高效,可靠传输是至关重要的。 图2 2o g s a d a i 服务n u 交互图 务 j l lj 矗卉,ij 叫n 聃故舡,n 吐h i 艇j 小t ,乏曩地 图2 2 说明了这止服务嗣l 核l j 州的典型交互过程j q ,实线为明用天系。虚 线为实例化过程。数:弘为顺序吁。 2 2 2o g s a - d a i 的引擎结构 o g s a - d a i 的引擎结构足o g s a - d a i 的核心。当一个执行文档提交到g d s 时, o g s a d a i 的引擎用来协调执行所有的操作。o g s a d a i 引擎的工作机制如下: ( 1 ) 当g d s 创建时,引擎从g d s 配制文件中取得上下文信息对g d s 进行实例化。 上下文信息包括: 活动类( a c t i v i t y ) 列表、活动类的x m ls c h e m a 和活动类所调用的类; 角色映射列表及其详细信息; 数据源的详细信息 ( 2 ) g d s 接收到执行文档时,会把执行文档连同上下文信息( 如用户的安全认证 信息等) 一起传给引擎引擎利用上下文中的活动类s c h e m a 验证执行文档内 容的有效性。然后利用执行文档中的相关数据和上下文中的信息,对活动类 进行实例化。最后,引擎根掘活动类的输入、输出对它们排序,建立这些活动 类问的数据流管道( p i p e ) ( 3 ) 系统中的数据流是由一系列活动类管理器来协调的,每个活动类管理器管理 活动类链中的一个活动类。所有的活动类通过管道连接在一起,管道实际上 提供了一个内在的活动类数据通路。每个活动类,除第一个和最后一个外, 都有一个输入管道和输出管道。具有输出功能的传输活动类,通过利用一个 特殊的管理器来初始化数据流。 2 3 基于发布订阅的复制系统体系结构 通过对该芯片加工企业的实际应用进行分析,我们认为要在网格数据库中实 现大规模的数据复制,需从以下方面进行考虑: ( 1 ) 拆分复制任务 在采用o r a c l e 数据链路这样的复制技术时。一般是数据需求方通过同义词 直接对数据提供方的数掘进行提取、加工处理,数据需求方和数据提供方之问是 一种c s 关系,数据合并处理和数掘变化监控由数据需求方独立完成,在数据提 供者的数据需要复制到多个需求方时,数据处理和数掘变化的监控等过程得不到 重用和优化,从总体上影响复制系统的处理效率。因此,我们考虑把复制过程拆 分成数据发布、数据监控、数据提取、数掘分发( 数掘合并、拆分计算) 、数掘 导入等不同的子任务,根据复制需求将复制子任务组成复制流程,从而使复制任 务的执行结果可以复用和优化,减少数据访问和计算时f h 】 ( 2 ) 实现复制任务的异步执行 第一二母复制系统的体系结构发儿戈键技术 一个复制流程可能涉及多个数据表。如果在数据表发生变化的同时触发复制 处理( 如通过t r i g g e r ) ,数据提供方必须等待处理结果,在处理计算量大时。 会严重影响数掘源的正常工作。此外,出于数据表的变化频率各不相同,如果从 多个数据表触发复制比较难以优化复制任务中的合并计算因此,我们考虑将 数据发布、数据处理和数掘导入等分布到不同服务器上执行,数据发布者负责在 数据变化时将数据及时推送到特定分发服务,分发服务根据一定的优化策略( 如 按照数据源的变化规律,设置启动闰值等) 进行合并计算,并为每一个订阅者启 动线程进行数掘推送这样,整个复制任务以异步的方式执行,数掘发布方不需 要负责整个复制过程,分发服务不需要负责数据变化的监控。并可以在多个合并 任务之问进行优化处理,提高系统处理效率。 ( 3 ) 实现复制任务的实时监控 当分布式系统出现故障时,往往很难知道哪里出了问题,或者需要花费很大 的时间和精力才能知道当分布式系统的性能下降时,由于网络环境的复杂性和 不稳定性,往往很难找到系统的瓶颈所在。这时就需要一套监控程序来实时监控 各任务的执行情况,实时记录下每个有潜在意义的事件,为全局的实时监控提供 支持。另外,监控程序还需要对某些关键性能参数作下记录,支持系统性能的分 析和调整。 通知 图2 3 体系结构 综合以上考虑,我们设计了如图2 3 所示的网格数掘库复制系统。整个系统 分为发布服务、注册服务、分发服务、订阅端和监控服务五大模块。 其中虚线部分表示注册过程,实线表示数据的传递加工过程,点划线表示监 控过程。 2 4 体系结构的特点 埔j 踅疗j i l 刚的p 呵f 再敌榭哺曩h f 缸m 址畏,乏宜观 塘r 发如订阅的网格数掘库复制系统具有如f 特点: 松耦合各服务相互独立,实现了一种松散的勰合, 调整不会直接影响订阅服务的任务 并行度高各服务可以砷i 设在不同的服务容器中, 和执行时f u j 灵活调整各服务的数掘量和并行程度。 发巾服务物理结构的 根据任务的执行负载 异构性通过对封装器的调整( 采用不同的j d b c ) ,可以使数据发布者 和数掘订阅者对应不同的数掘库,实现了异构系统问的数掘复制。 实时性发行服务自动监控数据源的变化把新事件实时推送到分发服 务缓存中,实现了实时数据传输。 对原系统影响小发布服务只负责数掘的监控和推送,复杂的数据加工 处理在分发服务处进行,减小了对原系统的影响 支持复杂数据加工分发服务的缓存采用数据库方式,通过数据库存储过 程可实现复杂的数据加工。 实时监控通过基于主题的信息订阅机制可对各服务的运行状态进行实 时监控,为系统性能的分析和调整提供方便。 2 5 关键技术及其实现 2 5 1 基于事务的分片数据更新机制 在基于o r a c l e 数据链路的复制模式中,对数据的加工是从所有的源数据中 提取数据,而源数据的表级记录有的达2 0 6 3 多万条,而且每天都以几万条的数 据量增长。从如此大的表中进行数据抽取加工,即使采用了索引等技术也需要较 长的时间。而采用发布订阅模式,可通过t r i g g e r 触发机制事先把有用的数据 提取出来,放入临时表中,对源数据进行垂直( 按记录) 和水平( 按字段) 过滤;同 时由发布服务的监控程序进行监控,实时地把更新数据推送到分发服务的缓存 中,并在分发服务中对更新数掘进行加工处理。这样数据的加工、转换就实现了 一种流式的分片处理,有效地缩短了加工时日j 、降低了数掘的传输量。 为记录各种事件类型,数掘在推送到缓存时,每条记录自动增加了事件类型 标志,以实现对i n s e r t 、u p d a t e 、d e l e t e 等不同事件类型的更新处理。这样, 发伟服务推送给分发服务的信息不再是简单的数据行,而是带有操作类型的事务 本身。分发服务会根掘事件类型对事务进行相应的处理,从而保证分发服务缓存 数据的事务一致性。 同时每条记录还增加了时问戳( c r e a t e d a t e 字段) 。以便于数掘加工处理 时从某一时问点截取数据,以保证分发服务缓存中某一时间点数据的一致性。 2 5 2 基于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议书样本:财产分割、子女抚养及赡养费协议
- 离婚协议书范本:离婚后赡养协议
- 离婚后共同财产分割协议变更手续及法律依据
- 个人教育培训机构公对私贷款及服务协议
- 失业风险下离婚协议范本及失业救济金处理
- 离婚后个人财产保全人寿保险合同
- 离婚诉讼中离婚协议违约责任追究民事起诉状
- 文化创意产品国际贸易合同签订与知识产权保护条款
- 社区医疗与社区体育场馆合作健康运动指导协议书
- 济南房产交易合同:房产交易法律风险防范协议
- 藏餐培训教学计划5篇
- 三年级上册美术课件-第1课 五星红旗我为你骄傲|辽海版
- 触电急救知识与方法PPT
- 中职心理健康教育第一课-PPT课件
- 文化引领学校特色化课程体系的建构
- 水岸山居调研
- 安全现场文明施工措施费用清单
- 墙体加固喷射混凝土浇筑交底
- 丽声北极星分级绘本第四级上 Stop! Everyone Stop!课件:
- 幼儿园课件:《秋分》
- 《读中国》作者阿紫
评论
0/150
提交评论