




已阅读5页,还剩60页未读, 继续免费阅读
(通信与信息系统专业论文)异构数据交换平台中若干关键问题研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
i 塞窒适太 堂亟堂位诠塞 虫塞塑墨 中文摘要中又捅要 摘要:近年来,北京市轨道交通的智能化、自动化程度不断提高,已建成中心指 挥系统、自动售检票系统等1 0 多个应用系统,积累了大量的动静态数据资源,但 这些数据分散在各个部门,这些部门由于业务流程繁杂、数据类型不同、存储结 构不同,严重影响了各个系统之间的互连互检和协同工作,制约了各种信息系统 建设和数据共享程度。因此,需加强对轨道交通动静态数据的整合利用,建立一 套统一的轨道交通基础数据库,实现轨道交通信息资源的集成共享与数据标准统 一。基于此需要,建立了北京城轨交通数据交换平台( 以下称“交换平台”) ,在 该交换平台中使用了消息队列机制,通过工作线程调用相应的处理器对消息队列 中的消息进行处理来完成数据交换。本论文对上述交换平台中的若干问题进行了 研究并在此基础上对已有交换平台进行了改进,主要工作如下: 1 设计并实现了一种新的基于线程池的动态消息处理机制,利用线程池统一 管理工作线程,限制工作线程的开启,减少工作线程数量,从而减小交换平台的 资源开销,提高交换平台的交换效率。 2 设计了一种消息队列优先级计算方法,对消息队列进行动态的调度,保证 每一个消息队列中的消息都能得到及时的处理; 3 设计了一种对象树模型算法,实现关系模式到x m l 模式的映射,进而完成 数据模式转换。 4 在对常用关系数据库数据类型比较的基础上,设计了一种数据格式匹配方 法,完成异构系统的数据格式匹配。 5 根据以上的改进策略对整个平台进行了重新设计并对各模块做了详细介 绍。 本论文的特色在于设计了一种新的消息处理机制,在该机制中,工作线程、 消息队列、处理器完全解耦,可以根据交换平台的数据交换的负荷情况通过配置 参数动态的调控交换平台的数据交换效率,具有很大的灵活性。测试表明,该机 制在大数据量交换情况下,相比已有交换平台的消息处理机制,处理效率更高, 运行更加稳定,另外通过异构数据库的数据模式转换和数据格式转换,实现了数 据交换。 关键词:异构数据交换;消息队列;队列调度;模式映射 分类号:t p 3 1 9 ;t p 2 7 4 a bs t r a c t a b s t r a c t :i nr e c e n ty e a r s ,t h ei n t e l l i g e n ta n da u t o m a t i cl e v e lo fb e i j i n gr a i l w a yh a s i m p r o v e dc o n s t a n t l ya n dm o r et h a n1 0a p p l i c a t i o ns y s t e m ss u c ha sc e n t r a lc o m m a n d s y s t e ma n da u t o m a t i cf a r ec o l l e c t i o ns y s t e mh a v eb e e nb u i l tu pa n dm a s s i v ed y n a m i c a n ds t a t i cd a t ah a v eb e e na c c u m u l a t e d b u tt h e s ed a t as c a t t e r e di nv a r i o u ss e c t o r s , w h e r et h ec o m p l i c a t e do p e r a t i o nf l o w , d i v e r s ed a t at y p e sa n dv a r i o u ss t o r a g es t r u c t u r e s a l li n t e r f e r et h ec o m m u n i c a t i o na n dc o o p e r a t i v ew o r ko ft h e s es y s t e m ss e r i o u s l y , t h u s r e s t r i c t st h ed e v e l o p m e n to fd a t as h a r i n go fi n f o r m a t i o ns y s t e m s t h e r e f o r e ,i no r d e rt o s t r e n g t h e nt h ei n t e g r a t i o no fr a i lt r a n s p o r ts t a t i ca n dd y n a m i cd a t a ,i ti sn e c e s s a r yt o e s t a b l i s hau n i f o r ms e to fr a i l b a s e dd a t a b a s et oa c h i e v et h ed a t ai n t e g r a t i o na n ds e tu p u n i f o r md a t as t a n d a r d so fr a i lt r a f f i cs h a r i n gr e s o u r c e s b a s e do nt h i sn e e d ,w eh a v e d e v e l o p e dt h eb e i j i n gr a i l w a yd a t ae x c h a n g ep l a t f o r m ( c a l l e d “e x c h a n g ep l a t f o r m ”a s b e l o w ) ,w h i c hu s e dt h em e s s a g eq u e u em e c h a n i s mt of i n i s ht h ed a t ae x c h a n g et h r o u g h p r o c e s s i n gm e s s a g e si nt h em e s s a g eq u e u e s t h ep a p e rd i dr e s e a r c ho ns e v e r a li s s u e s i nt h ed a t ae x c h a n g ep l a t f o r ma n di m p r o v e dt h ee x i s t i n gd a t ae x c h a n g ep l a t f o r m t h e m a i nw o r ki sa sb e l o w : 1 d e s i g n i n ga n di m p l e m e n t i n gan e wm e s s a g ep r o c e s s i n gm e c h a n i s m ,w h i c hu s e s t h r e a dp o o lt ou n i f o r m l ym a n a g ew o r kt h r e a d sw h i c hi su s e dt op r o c e s sm e s s a g e , d e c r e a s i n gt h en u m b e ra n dl i m i t i n gt h es t a r to f w o r kt h r e a d s ,t h u sr e d u c er e s o u r c ec o s t s a n de n h a n c ed a t ap r o c e s s i n ge f f i c i e n c y 2 d e s i g n i n g am e t h o dt oc a l c u l a t et h eq u e u ep r i o r i t y , s oa st od y n a m i c a l l y s c h e d u l et h em e s s a g eq u e u et oe n s u r et h a te a c hm e s s a g ei nt h eq u e u ec a nb ep r o c e s s e d t i m e l y 3 p r o p o s i n ga no b j e c tt r e em o d e la l g o r i t h mt oi m p l e m e n tt h em a p p i n gf r o mt h e r e l a t i o n a ls c h e m at ox m ls c h e m a , t h e r e f o r ec o m p l e t et h ed a t am o d e lc o n v e r s i o n 4 b a s e do nt h ec o m p a r i s o na m o n gt h ed a t at y p e so fc o m m o nr e l a t i o n a ld a t a b a s e , t h ep a p e rd e s i g n e dad a t af o r m a tm a t c h i n gm e t h o dt oc o m p l e t et h ed a t af o r m a tm a t c ho f h e t e r o g e n e o u ss y s t e m s 5 a c c o r d i n gt ot h ea b o v ei m p r o v e m e n ts t r a t e g i e s ,t h ep a p e rr e d e s i g n e dt h ew h o l e p l a t f o r ma n di n t r o d u c e de v e r y m o d u l ei nd e t a i l t h ef e a t u r eo ft h ep a p e ri st h ed e s i g no fan e wm e s s a g ep r o c e s s i n gm e c h a n i s m ,i n w h i c ht h ew o r kt h r e a d s ,m e s s a g eq u e u e sa n dt h ep r o c e s s o rc o m p l e t e l yd e c o u p l e d ,a n d t h ea d m i n i s t r a t o rc a na d j u s tc o n f i g u r a t i o np a r a m e t e r s t o d y n a m i c a l l ya d j u s t t h e p l a t f o r m sd a t ae x c h a n g ee f f i c i e n c yw i t hg r e a tf l e x i b i l i t y t e s t ss h o w e dt h a t ,f o rl a r g e 锄o u n to fd a t ae x c h a n g e ,t h en e wm e c h a n i s m ,c o m p a r e dw i t ht h ee x i s t i n gm e c h a n i s m , p e r f o r m sm o r es t a b i l i t ya n dt h ep l a t f o r ma p p e a r e dt o b em o r ee f f i c i e n ti nm e s s a g e p r o c e s s i n g o nt h eo t h e rh a n d ,t h r o u g ht h ec o n v e r s i o no f d a t am o d e la n dd a t af o r m a t , t h en e wp l a t f o r ma c h i e v e sh e t e r o g e n e o u sd a t ae x c h a n g e k e y w o r d s :h e t e r o g e n e o u s d a t ae x c h a n g e ;m e s s a g eq u e u e ;q u e u es c h e d u l i n g ; m o d e lm a p p i n g c i a s s n o :t p 3 1 9 :t p 2 7 4 v 致谢 光阴似箭,硕士论文的完成也意味着我研究生阶段及其整个学生生涯的结束, 此刻感慨良多,回顾整个求学生涯,我得到了很多人的关心和帮助,正是有了他 们我才能够顺利完成学业,取得今天的成就,在此我想向他们表达我由衷的感谢。 首先感谢我的导师刘云教授,本论文从开题、调研、撰写直至完成的每一个 阶段,都得到了刘老师的悉心指导。两年多来,刘老师亦师亦友,她不仅教给了 我学术研究的方法更教给了我很多做人的道理,刘老师求真务实、孜孜不倦的科 研态度和亲切随和、豪爽坦诚的为人处事风格都给我留下了深刻印象,我将终生 受用。在此,向刘老师表达我最崇高的敬意和由衷的感谢。 感谢张振江副教授,在工程实践方面给了我很多的机会和帮助,使我在实践 过程中积累了很多的工程开发经验。 感谢沈波副教授,在论文核心构思阶段处于茫然时,给了我很多富有建设性 和启发性的建议,为我指明了思考的方向,使我顺利地完成论文。 感谢我的同学们,是他们的鼓励和帮助使我的求学生活充满快乐,衷心地感 谢他们在论文完成过程中给予的合作和帮助,在此向他们表达我的感激之情。 另外也感谢我的家人,他们的理解和支持使我能够在学校专心完成我的学业。 最后,感谢培育我的母校一北京交通大学和所有在百忙之中抽出时间审阅我 论文的专家和老师们。 i 量立窒 适盔堂亟堂位途 塞要 宣 1引言 1 1 论文选题背景 最近几年,北京城市轨道交通各系统为了实现运营的信息化和自动化,按照 自身技术特点和需求,不同程度的应用了计算机技术、网络技术等实现了自己的 信息自动化系统n 1 ,如电力监控系统( s c a d a ) 实时采集配电系统数据,监测其状 态,加快配电过程中异常的反应速度;自动售检票系统( a f c ) 实现轨道交通售票、 检票、计费、收费、统计、清分、管理等全过程的自动处理:列车安全保障系统 ( a t c ) 通过对车速自动的控制来避免追尾、超速等事故发生以确保行车安全。其 他如无线通信系统( r c ) 、环境与设备监控系统( b a s ) 、时钟系统( c l k ) 等也 对城市轨道交通系统的自动化和安全起着重要的作用。轨道交通系统本身就是一 个“车、机、工、电、辆”组成的联动机,有些功能需要各系统问互享数据信息, 互相协作来完成。例如,在火灾情况下,防灾报警信号会传到各系统,触发各系 统的联动模式,f a s 系统、a t c 系统、b a s 系统、a f c 系统、p i s 系统等多个系统应 协调工作乜3 。但是现有系统由于都是服务于某个专业的用途,具有各自的特点,都 是自成体系的,有各自独立的网络结构、服务器和操作站等,而且在建设过程中, 会因为建设时间、技术性以及其它经济和人为因素等影响,导致采用的数据管理 系统也大不相同,从简单的文件到复杂的数据库,这些系统构成了异构数据源, 是一个个的信息孤岛b 1 。异构系统之间的联络比较困难且成本较高,难以实现信息 互通、资源共享,要实现城轨系统运营的协调和统一管理,不得不加入人工干预, 这样就降低了可靠性、响应性和运营效率。针对上述现状,开发北京城市轨道交 通数据交换平台,实现各异构系统的数据交换,消除各系统间的信息孤岛,以一 种统一的方式访问异构的数据,从而实现北京城轨各系统间的信息共享,有着深 刻的现实意义。 目前,已经实现了一个北京轨道交通数据交换平台,能够完成基本的数据交 换任务,但是该版本交换平台在消息处理的机制上采用了一种紧耦合的方式,不 适合大数据量的交换要求,本论文在调研的基础上设计了一种新的消息处理机制, 该机制相比较现有机制更加灵活,在大数据量的交换中也表现出了较高的交换效 率和很好的稳定性。此外,对数据交换中的关系数据到x m ls c h e m a 模式数据之间 的映射转换以及异构数据类型匹配等相关问题做了详细研究和探讨。 1 2 国内外研究现状 异构数据集成是一个很有研究价值,但也非常复杂的研究课题。近2 0 年来, 国内外的一些科研机构和学者从各个不同层面、采用不同的方法和技术对这个领 域相关课题进行了研究,并得出了不少有益结论,也建立了一些原型系统。但是 一方面由于各个数据源的异构多样性( 分布性,自治性等) ,另外一方面由于技术条 件的限制,目前并不存在一个通用的异构数据集成的解决方案,现有的集成系统 都只是处于研究阶段,离真正的商业化还相去甚远。这里主要介绍一些国内外比 较有代表性的相关研究工作。 国外一些公司和大学从二十世纪八十年代后期就已经开始了对异构数据库的 研究工作,并相继取得了很大的成果,比较突出的有: ( 1 ) x p e r a n t o 中间件系统1 4 j 由w i s c o n s i n 大学和i b ma l m a d e nr e s e a r c h c e n t e r 共同研究和实现。该中间件系统将对象关系数据以x m l 视图的形式发布, 使用一种x m l q l 语言实现对该x m l 视图的访问,将用户从繁琐的底层数据库 和s q l 语句操作解放出来。区别于一般的中间件系统,x p e r a n t o 将关系数据 和元信息无区别的抽取为x m l 视图,所以用户也可以同时很方便的访问数据库元 信息。该系统的缺点在于不支持主外键等约束描述,也不支持多表关系约束转化。 x p e r a n t o 结构如图1 1 所示: x p e r a n t o l 复杂x m l 视图l 中间件 j,天x m l q l x m l - q l 复杂x m l 视图 _ x m l q l 默认x m l 视图 ( 对象) 关系数据库系统 图1 1x p e r a n t o 系统结构 f 2 1t s i m m i s t 刘( t h es t a n f o r d i b mm a n a g e ro fm u l t i p l ei n f o r m a t i o ns o u r c e s ) 是 由斯坦福大学与i b m 联合开发的一个信息集成系统,为异构信息源的快速集成开 发所需工具,为用户提供了一个框架和一组工具来实现数据集成,包含两个组件, 包装器( w r a p p e r ) 和中间件( m e d i a t o r ) ,采用了一种基于逻辑的视图定义语言m s l f m e d i a t o rs p e c i f i c a t i o nl a n g u a g e ) 来进行定义,中间件和包装器都可以接受m s l 的 j 匕立童适盔堂亟堂鱼 途塞曼!宣 查询。包装器负责将数据源封装成一种叫做对象交换模型( o b j e c te x c h a n g em o d e l , o e m ) 的通用模型,中间件从包装器或其他中间件获取信息,通过集成不同信息源 的信息,解决它们之间的冲突来提炼信息,然后把结果信息或者提供给用户或者 提供给其他的中间件。该项目的优点是中间件和包装器都可以通过对其功能的高 水平的描述自动地或半自动地生成;缺点是需要较多的人工干预,自动化集成程 度低。 ( 3 ) i m ( i n f o r m a t i o nm a n i f o l d ) 【6 】【7 】是a t & t 贝尔实验室的项目,i m 采用知识描 述法来为信息源生成可执行的查询规划。i m 的体系结构基于一个知识库,该知识 库包含一个描述数据源的全局视图( w o r l dv i e w ) ,包含信息源信息主题的描述、与 信息源物理特性有关的属性描述以及信息源查询能力的描述等,用户基于全局视 图进行信息查询。 l兰竺!l 臣圃臣驷匪圃 图1 2i m 系统结构 国内对此课题的研究起步较晚,但也有一些成果: ( 1 ) c o x m l l 8 】是北京大学国家8 6 3 数据库重大专项“基于x m l 的数据集成共 享与交换课题的研究工作”的研究成果,c o x m l 系统提出了一种新的x m l s c h e m a 键约束自动生成技术,支持用户自定义数据源模式和目标模式之间的映 射,根据该映射关系自动生成为x m ls c h e m a 描述的层次关系和键约束。该技术 解决了目前基于x m l 的数据发布过程中数据库系统键约束丢失的问题,并且使得 生成的键约束满足当前x m l 文档规范说明的国际标准x m ls c h e m a 。c o x m l 系 统在设计过程中充分考虑了异构数据库管理系统的特点,支持集成不同数据库管 理系统中的数据,实现了国产数据库和o r a c l e 、d b 2 、s q ls e r v e r 等主流商用数据 库的数据集成。 ( 2 ) 东北大学p o l y b a s e 系统【9 1 。该系统采用基于源标签概念的非一范式数据 3 模型作为集成数据模型,能够较好地集成传统的数据库,包括关系数据库、层次 数据库和网状数据库。源标签集成机制便于解决部分语义异构问题。在p o l y b a s e 系统中采用弹性事务管理策略,该事务管理策略非常适合于多数据库系统。 ( 3 ) 华中科技大学的p a n a r a m a 系纠1 0 l 以c o r b a 服务的方式提供分布异构环境 下的多种数据库的数据集成功能。可分为全部查询分解器( g o d ) 、全局查询管理器 f g q m ) 、局部数据库代理( l d a ) 、模式信息管理器( s i m ) 。g o d 对象检查全局查询 的正确性;g q m 对象从s i m 获得分解全局查询所需要的全局模式信息;l d a 对 象负责将操作提交给局部数据库。 由以上的分析可以看出,在现在国内外数据集成的实现方案中,都不同程度 的使用x m l 作为数据集成的中间格式,x m l 以其自描述性、可扩展性、超强的 互操作性已成为异构数据集成的事实标准,本论文交换平台的实现也是基于x m l 。 同时也可以看出国内外的研究机构在企业数据集成方面的研究也存在一些问题: 局部模式到全局模式转换的复杂性;对结构化的关系数据具有良好的支持性,但 是对半结构化的数据支持不够,查询效率低下;牺牲了异构数据的自治性;注重 了关系数据的实体完整性,忽略了其约束完整性等,这些问题都有待更深入的研 究。 1 3 主要数据交换技术简介 目前实现异构数据源交换一般有两种技术方法:数据仓库法和虚拟法( 又称中 间件法m e d i a t o r ) 。 数据仓库法【1 1 1 建立了一个全局的数据仓库,数据仓库周期性的从局部数据源 抽取更新数据,通过对其进行加工和集成形成统一格式的集成数据,通过提供一 个统一的查询交换接口实现数据共享。数据仓库的数据通常能够反映历史信息, 包含企业过去某一个时刻到现在的各个阶段的数据,为企业决策分析提供数据。 该方法系统结构如图1 3 所示。 该方法优点是实现简单,可为用户提供简单快速的频繁数据访问,同时还可 为其他应用提供联机分析处理( o l a p ,o n l i n ea n a l y t i c a lp r o c e s s i n g ) 及决策支持等 功能。但这种方法打破了各异构数据库的自治性,在数据仓库和局部数据源上保 存了重复的数据,而且局部数据源的数据更新不能及时的反馈到数据仓库中。在 局部数据源进行升级或者局部数据源的存储结构发生变化时,为了实现数据仓库 和局部数据源的接口耦合,数据仓库必须进行二次开发甚至废弃,这会造成很大 的成本开销。 4 塞童通太 堂亟堂鱼 途塞曼!壹 图1 3 数据仓库法结构图 虚拟法i j2 j 主要是基于保持各异构数据源的自治性、实现透明访问方面的考虑。 在异构的数据源之间设置一个中间模式来模拟全局模式,各异构数据源之间不需 要知道彼此的所在位置,只需将数据请求发送到中间模式,中间模式会解析请求 并将请求分发到各个数据源,并且接收各数据源发回的数据响应,进行一些必要 的处理后发回请求端数据源。虚拟法的结构如图1 4 所示: 图1 4 虚拟法结构图 中问模式向上提供了统一的访问接口,向下封装和协调各异构数据源。各异 构数据源是透明的关系,数据源的变化不用更新到中间模式,虚拟法适合数据源 变化频繁的异构数据源集成和交换。目前,主要的研究都是基于虚拟法,本文交 换平台的实现也是基于这一方法。 1 4 本论文研究内容与安排 1 4 1 本论文研究内容 本论文在已有的北京城轨交通数据交换平台的基础上,对交换平台中的消息 处理机制进行了改进,提出了一种基于线程池的动态消息处理机制,该机制基于 在保证消息队列的公平调度和短时等待的基础上,减少交换平台的资源开销,从 而提高整个交换平台的交换能力。在该机制下,可以根据消息队列的负载情况以 及交换平台的处理负荷对交换平台的处理效率进行动态的调控,使交换平台处于 稳定的运行状态。 对异构数据交换中的关系模式到x m ls c h e m a 模式的映射和数据转换进行了 研究。利用面向对象的思想,提出了一种基于对象树的模式映射方法,将关系模 式的实体完整性和约束完整性映射为层状组织的x m ls c h e m a 模式;在研究常用 关系数据库数据类型的基础上,根据交换平台的实际需求,提出了一种数据类型 匹配方法来完成异构数据源的类型匹配。 最后,对整个交换平台进行了重新设计并对各模块做了详细介绍。 1 4 2 章节安排 本论文由六个章节组成。 第一章介绍北京城轨交通数据交换平台开发的背景以及在数据集成方面国内 外发展现状和目前使用的主要技术方法。 第二章介绍本论文使用到的关键技术。 第三章介绍基于线程池的动态消息处理机制。 第四章介绍本平台中使用的关系模式到x m l 模式映射方法以及异构数据转 换方法。 第五章介绍北京城轨数据交换平台的功总体模块设计。 第六章总结了本论文工作,并且针对本论文在研究工作中的缺点提出了改进 意见。 6 e 丞銮道太堂亟堂鱼途塞羞鳇燕苤佥绌 2 关键技术介绍 2 1 x m l 技术及其作为数据交换标准的优势 2 1 1 x m l 技术简介 x m l ( e x t e n s i b l em a r k u pl a n g u a g e ,可扩展的标记语言) 是由w 3 c ( w o r l dw i d e w 曲c o n s o r t i u m ) 于1 9 9 8 年2 月发布的一种标准1 1 3 】。x m l 是s g m l ( s t a n d a r d g e n e r a l i z e dm a r k u pl a n g u a g e ,标准通用标记语言) 的子集,x m l 将s g m l 的丰富 功能与h t m l 的易用性结合到w e b 的应用中,在s g m l 和h t m l 之间实现互操 作。s g m l 定义的功能比x m l 强大,但是不适用于w - e b 数据描述,而且使用s g m l 需要昂贵的成本。h t m l 适合w e b 页面的开发,但是不够灵活。x m l 支持对现 有的面向s g m l 系统的向下兼容性,在消除s g m l 和h t m l 的缺点的同时具备二 者的优点,更具优势性。 x m l 是元标记语言,针对不同的需求可定制不同的标记,x m l 可以以基于 文本的格式来描述数据内容,同时突出对自我结构的描述,从而体现出数据之间 的关系。x m l 被设计为混合语言,以便在用户和程序之问交换信息。有很多的规 范可被用来描述x m l 格式,如文档格式化标准( x m ls c h e m a ) 、文档类型定义 ( d o c u m e n tt y p ed e f i n i t i o n ) 、显示模式定义( x s l ) 、文档查询标准( x q u e r y ) 等。x m l 的出现,为分布、异构的软硬件环境下的信息集成方法研究提供了一个全新的思 路。 x m l 具有以下的优点1 1 4 j : ( 1 ) x m l 是自描述的。x m l 允许以一种开放的自我描述方式定义数据结构, 用户可以根据自己的实际需求定义标记之间的嵌套关系以及标记的类型( 复杂或简 单) 。x m l 在描述数据内容的同时能突出对结构的描述,从而体现出数据之间的关 系。这样所组织的数据对于应用程序和用户都是友好的、可操作的。 ( 2 ) x m l 是可扩展的。各种不同的专业都可以借助x m l 的扩展性来开发针 对特定领域的标记语言,如数学标记语言m a t h x m l 、音乐标记语言m u s i c x m l 等。 此外,x m l 的扩展性和灵活性允许其描述从w e b 页面到关系数据库等不同种类应 用中的数据。 ( 3 ) x m l 的内容和表现形式是相分离的。相比较h t m l 将显示格式内嵌在 内容当中,x m l 将显示格式从数据内容中独立出来,保存在样式单文件( s t y l es h e e t ) 中,在需要改变文档的显示方式时,只要修改样式单文件就行了。x m l 将显示、 数据、结构文档三要素独立开来,可以分别定义其格式,分别处理,从而实现了 最大限度的灵活性。 ( 4 ) x m l 支持对文档内容的验证。x m l 制定了一整套的语法规范f 如d t d 和x m l s c h e m a ) 来约束x m l 文档的内容,只有在满足语法规范时才能进行下一步 的处理,保证了x m l 文档的有效性。 ( 5 ) x m l 文档是易读的。x m l 是文档格式的并且以a s c i i 的形式来描述其 固有结构,所以x m l 是平台无关的,对于任何平台和程序员都是易读的。 ( 6 ) x m l 适用于数据交换。x m l 可以用来定义各种类型的数据,因为其跨 平台、易阅读、可自我描述的优点,这些数据可以被不同的平台识别和处理,可 以作为中问数据格式在异构的数据源之间实现数据交换。 ( 7 ) x m l 支持高级搜索。由于x m l 文档有自己的一套语法规则,x m l 文档 内容的结构和含义都是基于这一规则的,x m l 文档能够获悉其本身的内容和结 构,所以利用x q u e r y 等x m l 查询语言可以很容易在x m l 文档中进行搜索。 2 1 2 x m l 作为数据交换标准的优势 基于2 1 1 节的描述,x m l 作为数据交换标准具有巨大的优势【l5 】: ( 1 ) 由于x m l 的可拓展性,使用者可以根据他们想要交换的信息来定义一个 适合该信息标准的定义和处理的协议。由于基于x m l 的数据是自我描述的,x m l 文档本身不需要有内部描述就能被交换和处理。当新的交换需求出现时,只需要 增加不同的标签即可。x m l 的这种可拓展性对于异构系统之间的数据交换来说是 一种较理想的机制。只要各异构系统使用同一种文献类型定义,就可以根据指定 的规则自动完成交换,不用人为的干预。其他异构系统也可以采用相同的标准来 映射自己的信息至标准格式x m l 文档以参与到数据交换系统。x m l 的可拓展性 和灵活性使得开发基于x m l 的标准可以在很大范围内提高数据交换效率。 ( 2 ) x m l 显示与内容分离的特性弥补了h t m l 的缺陷,这一特性使得x m l 文档数据能够以客户配置、使用者选择或其他标准决定的方式动态地表现出来。 c s s 和x s l 为数据的显示提供了公布的机制。这种特性使得x m l 格式能很方便 的被转化为适合异构系统的数据格式从而被各个异构的系统识别。 ( 3 ) x m l 数据可以通过d o m 和s a x 等工具方便的解析和处理,解析后的 数据可以很方便地被嵌入到网页、应用程序等各种各样的数据终端。因为x m l 文 档既包括数据,也包括定义的格式,因此,所有的开发都可以围绕这个固定的格 式来进行,而并不需要更多的信息。这大大减轻了开发过程中的数据协调问题。 ( 4 ) x m l 数据的易读性使得x m l 数据可以被更多的用户使用。x m l 的平台 无关性可以使其被各种异构的平台的解析和处理,客户端和应用程序可以像对待 = | e 立童适厶堂亟堂位诠塞差毽壁丕佥绍 数据库一样将x m l 文档作为数据源来处理,可以更方便的与其它异构系统进行数 据集成。 基于x m l 以上的优势,x m l 已经被很多的集成产品作为数据交换标准和协 议来使用。如w e bs e r v i c e 框架中的s o a p 协议、w s d l 文档都采用x m l 格式。 2 2d t d 和x m ls c h e m a 在使用x m l 用于开发时,不同行业的应用,可能会使用适合本行业的特定的 标记和结构,为了交换的方便性,需要一种机制指定应该如何用x m l 来统一描述 某一特定事物,d t d 和x m ls c h e m a 就是专门用于制定x m l 格式和检验文档是 否满足此种格式要求的机制。 d t d 是d o c u m e n tt y p ed e f i n i t i o n ( 文档类型定义) 的缩写,d t d 是一套关于 标记符的语法规则,可用在文档中表示元素、属性、实体和符号,以及这些内容 之间可能的相互关系。d t d 指定了文档结构的整体语法和结构,并且将文件的结 构和文件的内容完全分开【1 6 】。d t d 使应用系统和解析器能检验x m l 文档的有效 性,或提供编辑工具以开发符合定义的x m l 文档。d t d 的使用提供了以下的好 处【1 7 】: ( 1 ) 使x m l 文档实现标准化,在某一行业中,通过d t d 定制适合该行业x m l 文档标准,只要按照该标准编写x m l 文档,就能编写出符合该行业规范的x m l 文档。 ( 2 ) 可以为某个独立的团体定义一个公用的外部d t d ,多个x m l 文档就可 以共享使用该d t d ,使得数据交换更为有效。甚至在某些文档中还可以使内部d t d 和外部d t d 相结合。 ( 3 ) d t d 中只包含结构,设计者可以针对d t d 做多种格式的美化,而不会 影响x m l 中的数据内容。 ( 4 ) 可以在不同的d t d 规范之间制定转换规则,从而可以很方便的实现x m l 数据文档之间的互相转换。 ( 5 ) d t d 中的实体参照性使得开发人员可以将外部的数据或是图文件加到 x m l 文件中,使x m l 文件内容更加丰富且更结构化。 d t d 也存在其固有的一些缺陷,由于d t d 是从s g m l 中的类别定义移植过 来的,虽然可以用来限制和规范x m l ,但其本身并不是x m l 文档,因此,d t d 的定义不仅难以学习,而且在实践中所能提供的定义也不能满足x m l 数据类型定 义的需要。针对d t d 的种种问题,w 3 c 的s c h e m a 工作小组经过研究,提出很多 的解决方案,如文献内容描述( d c d ) 、资源描述框架( r d f ) 、面向对象的x m l 9 j e 塞童道厶堂亟堂位途塞羞毽撞盔金型 s c h e m a ( s o x ) 等。s c h e m a 工作小组通过分析以上方案的性能和优缺点,经整合形 成x m l s c h e m a 标准,并于2 0 0 1 年5 月2 由w 3 c 正式确定为其建议标准。 与d t d 不同的是x m ls c h e m a 的格式完全符合x m l 格式,内置了l9 种基本 数据类型和2 5 种内置派生类型。基本的数据类型可以用来定义其它的数据类型。 x m l s c h e m a 使用两种方式来实现数据类型的定义【馏1 : ( 1 ) 简单类型定义( s i m p l e t y p e ) ,指使用l i s t ,r e s t r i c t i o n 等方式以x m ls c h e m a 内置的数据类型为基础所定义的新的数据类型。 ( 2 ) 复合类型定义( c o m p l e x t y p e ) 。提供了一种定义复杂数据结构的机制,通 过该机制可以将复杂的对象映射到x m l 的元素或属性。 x m l s c h e m a 对属性声明也作了一些扩充,增加了r e f 关键字,使属性定义和 属性引用分离;增加了关键字t y p e 以支持多种数据类型种数据类型;d t d 的缺省 类型改用关键u s e 定义,支持o p t i o n 、p r o h i b i t e d 和r e q u i r e d - t o o 类型。 x m ls c h e m a 相比d t d 有以下的优势1 19 j : ( 1 ) 由于x m ls c h e m a 本身也是一种x m l 格式,x m l 的许多编辑器、a p i 开发包、语法解析器都可以直接应用而不需修改。 ( 2 ) 作为x m l 拓展性的体现,x m ls c h e m a 继承了x m l 的一切优点,具有 很好的灵活性、拓展性、易读性。 ( 3 ) x m l 格式的文档必须符合某种标准格式,可以通过d t d 和x m ls c h e m a 对其进行验证,但是d t d 本身的合法性却需要进行独立的验证,x m ls c h e m a 则 可以与x m l 使用同样的验证机制,从而更加方便灵活。 ( 4 ) d t d 在描述关系数据方面存在很大的局限性,其有限的数据类型根本无 法一一映射所有的关系数据类型。x m ls c h e m a 除提供了丰富的内建类型之外,还 可以通过对其进行拓展自定义数据类型,能够很好地对关系模式的数据进行描述。 虽然x m ls c h e m a 相比较d t d 有更大的优势,可以满足更复杂的要求,但是 目前大多数的基于x m l 的应用都对d t d 有很好的支持,基于d t d 的开发工具也 更加成熟,这些应用和工具在升级时不会选择以x m ls c h e m a 来代替d t d ,最起 码会选择二者兼顾。当前与x m l 模式相关的算法研究都是基于d t d 展开的,作 为一种算法的延续,是不可能被放弃的。 由上边的比较可以看出,x m ls c h e m a 作为一种强有力的x m l 表示标准,比 d t d 有更强的表现力,更加符合日趋复杂的应用需求,在很多的应用领域都有取 代d t d 的趋势。特别是在数据交换应用需求方面,x m ls c h e m a 已经基本取代d t d 成为事实标准,本平台的模式映射就是基于x m ls c h e m a 。 1 0 e 塞童适太堂亟堂位途塞苤毽撞盔企绌 2 3 x m l 的解析技术介绍 x m l 格式文件只是以纯文本的方式对数据进行了编码,在实际开发中,为了 读写x m l 文件中所编码的数据,必须通过某种方式先将数据从纯文本中解析出 来。因此,x m l 解析技术在信息系统的构建过程中十分重要。根据数据对象的特 征和提取的不同需求,存在着各种x m l 解析方式。下面重点介绍流行的s a x 解 析器和d o m 解析器。 s a x ( s i m p l ea p if o r x m l ,x m l 简单应用程序接口) 是一个用于处理x m l 的 事件驱动的模型【2 0 】。s a x 不是w 3 c 标准,是一个使用j a v a 开发的得到了广泛认 可的a p i 。s a x 解析器采用回调机制【2 ,s a x 对x m l 文档进行顺序访问读取数 据信息时会激活一系列的事件,这些事件会激发相应的事件处理函数,完成此激 发事件的处理。s a x 核心接口是c o n t e n t h a n d l e r ,包含一些方法来报告基本解析事 件及文档事件,包括文档开始事件、元素开始事件等等。用户在使用s a x 解析 x m l 文件时,必须实现c o n t e n t h a n d l e r 以实现自定义的处理器,从而完成对x m l 文件的自定义解析。s a x 解析技术不需要将整个文档一次性加载进内存,只在访 问到特定的元素标记开头时才会调用相应的解析器去进行处理,所以s a x 模型内 存消耗小,而且开发人员可以根据需要创建自己的x m l 对象模型。s a x 的缺点 是必须由应用程序实现事件处理程序,维护文档中事件的状态。这样当文档逻辑 很复杂时,增加了应用程序开发的复杂性。 文档对象模型( d o m ) 是访问和维护x m l 文档的应用程序接h ( a p i ) ,是w 3 c 推荐的解析x m l 的标准。d o m 独立于平台和语言,提供统一的方式来解析x m l 文档。d o m 在解析x m l 文档时,会遍历整个文档,并将文档,元素,属性等要 素封装为可访问的对象节点,在内存中形成一个描述该文档的对象树结构,在解 析时会将该树形结构一次性的加载进内存,用户可以直接利用这些对象与文档内 容进行交互,可以对文档的结构和内容进行删除、增加、编辑操作。d o m 提供了 对x m l 文档随机访问的能力【2 引,由于文档信息驻留在内存中,可以实现对x m l 文档的编辑。但是,d o m 一次性将文档信息加载进内存会花费很大的成本,特别 是在文档容量很大时,需要耗费很大的内存。 基于以上的分析,可以看出s a x 和d o m 这两种x m l 解析方式各有其优点 和缺点,针对不同的解析需求应该选用合适的解析方式。当应用程序需要不断对 文档信息进行访问或者一次性的循环遍历所有文档信息,需要对文档进行编辑时 应该优先考虑使用d o m 解析;当应用程序只是需要只读文档信息流,并且在访问 的同时需要利
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学员驾校协议合同
- 会议代理协议合同
- 2025年瑜伽教练资格证考试题库:瑜伽教练职业培训教学案例试题
- 如何签订返租合同协议
- 弱电合同协议书范本
- 分红股协议合同
- 协议猫粮合同
- 外包用人协议合同
- 坐诊协议合同
- 合同里的附加协议
- 海参收购协议书范本
- 定额〔2025〕20号 定额管理总站关于发布2024年电力建设工程装置性材料综合信息价的通知
- 2025年03月绍兴市诸暨市综合行政执法局执法辅助人员27人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 养老年护理员职业道德规范
- 部编人教版五年级语文下册教学策略计划
- 2025年-浙江建筑安全员A证考试题库附答案
- 动物生理学第十二章-泌乳
- 互联网+旅游创新创业
- 金属矿床地下开采-全知识点
- 血站服务礼仪培训
- 八下历史第三单元大单元教学设计
评论
0/150
提交评论