




已阅读5页,还剩55页未读, 继续免费阅读
(计算机应用技术专业论文)基于xml的数据交换中间件的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于x m l 的数据交换中间件的研究与实现 摘要 摘要 本文研究数据交换的问题,其目的是为实现各“信息孤岛”之间互 联互通,信息共享。在数据交换中关键的两点是各数据源之间的数据异 构问题及交换过程的动态配置问题。针对上述两个问题,本文使用x m l 及插件技术提供了一种解决思路。 本文首先对数据的异构性进行了归纳和总结,然后使用x m l 分别 表示数据的结构信息和值信息。通过对数据结构文件和用户定义的规则 文件进行分析生成映射文件,从而解决数据冲突。在此基础上,设计实 现了一个基于x m l 的数据交换中间件( x d e m ) 系统。系统将数据交换 处理流程与处理方法相分离,用户可以定制开发不同的处理插件,以满 足交换过程的动态配置。这些极大地增强了系统的适应性、扩展性。 本文最后对x d e m 系统的设计和实现作了总结,并提出今后需要 进一步研究的内容。 关键词:数据交换,数据冲突,x m l ,中间件 作者:黎明 指导老师:孙涌 a b s t r a c t r e s e a r c h a n di m p l e m e n t a t i o no f t h ex v l l - b a s e dd a t ae x c h a n g em i d d l e w a r e a b s t r a c t t h i sp a p e rr e s e a r c h e so nd a t ae x c h a n g e i t sp u r p o s ei st or e a l i z et h ei n t e r c o u n e c t i o n a n di n f o r m a t i o ns h a r i n ga m o n ge v e r y ”d e t a c h e di s l a n do fi n f o r m a t i o n ”i nd a t ae x c h a n g e p r o c e s s ,t w ok e yp o i n t sa r ed a t ai s o m e r i s ma n dd y n a m i cc o n f i g u r a t i o n t h ea d o p t i o no f x m la n dp l u g i nt e c h n o l o g yh a so f f e r e dak i n do fn e ws c h e m eo fs e t t l e m e n tf o rd a t a e x c h a n g e t h i sp a p e rh a sc a r r i e do nt h ei n d u c t i o na n dt h es u i n l n a r ya c c o r d i n gt ot h ed a t a i s o m e r i s m t h e ni te x p r e s s e st h es t r u c t u r ei n f o r m a t i o na n dv a l u ei n f o r m a t i o ns e p a r a t e l y w i t ht w ox m lf i l e s i tr e a l i z e sd a t ae x c h a n g et h r o u g ht h ea n a l y s i so f d a t as t r u c t u r ef i l e s a n dr u l ef i l e su s e rd e f i n e d a f t e rt h a tt h ep a p e rh a sd e s i g n e da n di m p l e m e n t e da x m l - b a s e dd a t ae x c h a n g em i d d l e w a r e ( x d e m ) x d e ms e p a r a t e st r e a t m e n tm e t h o d f r o md a t ap r o c e s s i n gp r o c e d u r e u s e r sc a nc u s t o m i z ed i f f e r e n tt r e a t m e n tf o rd i f f e r e n t o c e a s i o u ss oa st os t r e n g t h e na d a p t a b i l i t ya n de x p a n s i o n i nt h ec o n c l u d i n gp a r t , t h ep a p e rs u m m a r i z e st h ed e s i g na n dr e a l i z a t i o no fx d e m a n ds u g g e s t e dt h ef u t u r ei m p r o v e m e n to ni t k e y w o r d s :d a t ae x c h a n g e ,d a t ac o n f l i c t ,x m l ,m i d d l e w a r e i i w r i t t e nb yl im i n g s u p e r v i s e db ys u ny o n g f y 9 5 6 7 1 9 苏州大学学位论文独创性声明及使用授权声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进行研究工 作所取得的成果。除文中已经注明引用的内容外,本论文不含其他个人或集体已 经发表或撰写过的研究成果,也不含为获得苏州大学或其它教育机构的学位证书 而使用过的材料。对本文的研究做出重要贡献的个人和集体,均已在文中以明确 方式标明。本人承担本声明的法律责任。 研究生签名: 学位论文使用授权声明 日期:坦丛粤 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文合作部、 中国社科院文献信息情报中心有权保留本人所送交学位论文的复印件和电子文 档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质 论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以 公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权苏州大 学学位办办理。 研究生签名: 导师签名 日期:趔! ! 力 日期:心旦7 盟拇糙斟 基于x m l 的数据交换中间件的研究与实现第一章绪论 第一章绪论 本章是全文的绪论部分,主要介绍了论文相关的研究背景,研究现状,研究 目的、意义并给出了本文所要研究的主要内容及组织结构。 1 1 研究背景 人类已进入2 1 世纪,中国也己加入了w t o 。无论是国内企业,国 外企业或者是政府部门,都将面临一个全球经济一体化的市场环境,竞 争日益激烈。谁能迅速了解市场信息,并随市场变化而动,谁就能在竞 争中立于不败之地。为此,越来越多的企业建立了各种信息管理系统( 如 h r 、e i s 、e r p 、c i u m 、o a 等) 来提高业务处理效率。于是,那些基 于数据库平台的信息管理系统成为企业计算的核心和基础。由于企业业 务的复杂性和计算机技术的快速发展,决定了信息管理系统的建设是一 个长期的、逐步扩展的过程【l 】。而不幸的是,大部分企业或政府部门在 其信息管理系统建设初期并未进行统一规划,使得在不同时期、不同环 境下采用不同硬件平台,不同操作系统或不同数据库技术构建起来的管 理系统就像一个个的“信息孤岛”。“信息孤岛”的存在造成了整个企 业信息平台中存在大量冗余数据、垃圾数据,难以保证数据的一致性, 降低了信息的使用效率和利用率。据统计,在绝大多数公司,8 0 的i t 资源都花费在基础设施的开发、集成与维护方面,这就意味着只有2 0 的i t 预算能够用于提升企业市场竞争力、为企业带来高价值的应用方 面【2 】。针对这一问题,人们已经开始进行数据集成方面的研究,也形成 了一些成熟的框架和模型,其中最主要的就是模式集成方法和数据复制 方法。 1 , 1 1 模式集成方法 模式集成是人们最早采用的数据集成方法3 ,4 1 ,其基本思想是,在 构建集成系统时将各数据源的数据视图集成为全局模式,使用户能够按 第一章绪论 基于x m l 的数据交换中间件的研究与实现 照全局模式透明地访问各数据源的数据。全局模式描述了数据源共享数 据的结构、语义及操作等。用户直接在全局模式的基础上提交请求,转 换成各个数据源在本地数据视图基础上能够执行的请求。模式集成方法 的特点是直接为用户提供透明的数据访问方法。由于用户使用的全局模 式是虚拟的数据源视图,一些学者也把模式集成方法称作虚拟视图集成 方法。 模式集成要解决的两个基本问题是:构建全局模式与数据源数据视 图间的映射关系;处理用户在全局模式基础上的查询请求。联邦数据库 和中间件集成方法是现有的两种典型的模式集成方法。 1 ) 联邦数据库系统( f d b s ) 【5 】 这是早期人们采用的一种模式集成方法。它是由半自治数据库系统 构成,相互之间分享数据,联盟各数据源之间相互提供访问接口,同时 联盟数据库系统可以是集中数据库系统或分布式数据库系统及其它联 邦式系统。在这种模式下又分为紧耦合和松耦合两种情况,紧耦合提供 统一的访问模式,一般是静态的,在增加数据源上比较困难;而松耦合 则不提供统一的接口,但可以通过统一的语言访问数据源,其中核心部 分是必须解决所有数据源语义上的问题。 2 1 中间件集成方法1 6 1 中间件集成方法通过统一的全局数据模式来访问异构的数据库、遗 留系统、w e b 资源等,如图1 - 1 所示。 中间件位于异构数据源系统( 数据层) 和应用系统( 应用层) 之间, 向下协调各数据源系统,向上为访问集成数据的应用提供统一数据模式 和数据访问的通用接口。各数据源的应用仍然完成它们各自的任务,中 间件系统则主要集中为异构数据提供一个高层次检索服务。 中间件注重于全局查询的处理和优化,相对于联邦数据库系统的优 势在于它能够集成非数据库形式的数据源,有很好的查询功能,自治性 强;缺点在于它通常是只读的,而联邦数据库对读写都支持。 基于x m l 的数据交换中闯件的研究与实现 第一章绪论 1 1 2 数据复制方法 图1 - 1 中间件数据集成方法 数据复制方法【7 】将各个数据源的数据复制到与其相关的其它数据 源上,并维护数据源整体上的数据一致性,提高信息共享利用的效率。 数据复制可以是整个数据源的复制,也可以是仅对变化数据的传播与复 制。数据复制方法可以减少用户使用数据集成系统对异构数据源的数据 访问量,从而提高数据集成的性能。 目前比较常见的数据仓库 8 1 使用的正是数据复制方法。数据仓库是 在企业管理和决策中面向主题的、集成的、与时间相关的和不可修设的 数据集合。该方法将各个数据源的数据复制到同一处数据仓库,用 户则像访问普通数据库一样直接访问数据仓库。 上述这些数据集成方法,尤其是数据复制方法,在不同程度上都需 要在不同数据源之间进行数据交换,数据交换已成为众多数据集成方法 中的一种或不可缺少的一部分。 1 2 研究现状 数据库的异构问题自其产生之日起就受到各数据库厂家及许多数 据库专家的关注。经过长期的研究、探索和实践,人们已取得不少成果, 提出了许多解决异构数据交换的策略和方法,总的来说,可以分为以下 基于x m l 的数据交换中同件的研究与实现 几种: 1 ) 使用数据库自带工具进行转换 一般情况下,数据库管理系统都提供将外部文件中的数据转移到本 身数据库表中的数据装入工具。比如o r a c l e 提供的将外部文本文件中的 数据转移到o r a c l e 数据库表的数据装入工具s q ll o a d e r t g l ,m i c r o s o f t 公司开发的s q ls e r v e r 中的数据转换工具d t s t l o 】和p o w e r s o f t 公司的 p o w e rb u i l d e r 中提供的数据管道f l l 】( d a t ap i p e l i n e ) 。 这些数据转移工具可以以多种灵活的方式进行数据转换,而且由于 它们是数据库管理系统本身所附带的工具,执行速度快,不需要o d b c 支持,在机器没有安装o d b c 的情况下也可以方便地使用。 但是,使用这些数据转换工具的缺点是它们不是独立的软件产品, 必须首先运行该数据库产品的前端程序才能运行相应的数据转换工具, 通常需要几步才能完成,且多用手工方式进行转换。如果目的数据库不 是数据转换工具所对应的数据库,数据转换工具就不能再使用。 2 ) 利用中间数据库转换【1 2 j 在两个异构数据库间进行数据交换时还可使用“中间数据库”的方 法,即在实现两个具体数据库之间的转换时,依据关系定义、宇段定义, 对要转出的数据库生成脚本,将数据从源数据库中读出通过中间数据库 写入目的数据库中。 这种利用中间数据库的转换办法,所需转换模块少,且扩展性强, 但缺点是在实现过程中比较复杂,转换质量不高,转换过程长。 3 ) 设置传送变量转换 借助数据库应用程序开发工具与数据库连接的强大功能,通过设置 源数据库与目的数据库两个不同的传送变量,同时连接两个数据库,实 现异构数据库之间的直接转换。这种办法在现有的数据库系统下扩展比 较容易,其转换速度和质量大大提高。 4 ) 通过开发数据库组件转换 利用j a v a 等数据库应用程序开发技术,通过源数据库与目的数据 库组件来存取数据信息,实现异构数据库之间的直接转换。通过组件存 取数据,关键是数据信息的类型问题,若源数据库与目的数据库对应的 数据类型不相同,必须先进行类型的转化,然后双方才能实施赋值。 基于x m l 的数据交换中间件的研究与实现 1 3 研究目标与意义 目前,各数据库厂商虽然提供了很多工具来提取和转换数据,但是 这些工具较依赖于具体的数据库厂商提供的产品,通用性不强。而其他 较成熟的通用异构数据转换产品非常少。 针对以上情况,本文设计并实现了一个具有可扩展性、可定制性及 与平台无关性的数据交换中间件系统,能很好的消除数据在结构和语义 上的差异。 数据交换问题的解决,能为数据集成提供有力的支持,实现企业各 信息系统的信息共享;能充分利用现有资源,避免重复开发,保护原有 系统的投资;还能避免“信息孤岛”造成的重复录入、资源浪费、数据 不一致性问题,为开发新的应用系统提供基础业务数据。 1 4 论文工作内容 本文研究的数据交换实质上是一个将源数据源中的数据提取出来, 经过处理和转换,得到符合目标数据源结构格式的数据并加载到目标数 据源中的过程。在顺利实现数据交换,一个重要的问题就是如何消除各 数据源中数据的异构性,即解决数据在结构和语义上的不同。由于目前 市场上关系数据库的应用场合非常广泛,在本文中,主要考虑关系型数 据库作为数据源时的情况。此外,随着业务需求的发展变化,可能随时 会有新的数据源加入到数据交换的队伍中来,或者是需要对已有的数据 交换进行修改。如何随需而变,灵活配置就是在数据交换中须解决的另 个关键问题。 本文通过使用中间件来实现各异构数据源之间的数据交换。在数据 交换中间件系统中,使用x m l 作为公共数据表示来表达要交换的数据 的结构信息和值信息。通过对数据结构信息文档的分析和值信息文档的 转换,完成源数据到目标数据之间的交换过程。系统实现时采用了插件 的方法,使用户可以自定义处理数据的插件,并根据需要灵活配置运行。 从而有效解决数据交换中需不断满足新要求的问题。 综上所述,本论文主要研究的有以下一些具体内容: 第一童绪论 基于x h 礼的数据交换中间件的研究与实现 1 ) 数据冲突分析 数据源的异构性一直是数据交换和数据集成的核心问题,本文对数 据交换中数据的异构性进行分析和归纳,将其中的数据冲突分为同构冲 突和异构冲突。这些分析有利于下一步使用沮。来对数据进行处理。 2 ) 公共数据表示 x m l 具有丰富而灵活的表达能力,因此本文在实现数据交换时使 用x m l 作为公共的数据表示模型,描述了异构数据的结构和值信息。 系统根据这些信息可以对交换的数据进行模式匹配、映射和转换。良好 的数据表示能使这些工作变得简单。 3 ) 数据转换 通过系统中咀。表示的数据结构信息和用户定义的规则文件分析 生成数据交换双方的映射文件,并进行实际的数据值转换。 4 ) 任务管理框架 提供一个具有可扩展性、可定制性的数据交换框架。此框架提供了 数据交换的基本处理流程,能根据任务定义配置信息动态加载和执行活 动插件。 5 ) 处理插件 处理插件使用户自己能定义对交换双方数据的处理,这是系统可扩 展,可定制的重要保证。文中需提供用户编写开发处理插件时所要遵循 的规范。 本文给出了数据交换中间件的系统设计,并且具体介绍了关键问题 的解诀方案和相关技术实现。 1 5 论文组织结构 根据上述内容,本论文共分为五章进行讨论。 第一章是绪论部分,主要介绍了论文的选题背景、研究现状、研究 的目的及意义、论文研究的主要内容和组织结构。 第二章为相关技术介绍,介绍了本文中主要使用或相关的中间件技 术和各种儿技术。 第三章为数据交换方案的分析设计,这章详细介绍了在数据交换的 垩三! ! ! 些箜墼塑窭垫! 囹堡竺翌壅量壅墨翌二兰堕丝 设计原理和异构数据之间的数据冲突以及数据冲突的解决办法,为系统 的具体实现提供了重要保证。 第四章为数据交换中间件的设计与实现,这章给出了数据交换中间 件系统的具体设计与核心部分的实现。其中的任务管理和活动插件是整 个系统的核心部分。 第五章为总结与展望,从总体上总结了本文所研究的内容及其主要 问题的解决方法,并讨论了该方案需要进一步完善的地方以及在实际中 下一步该做的工作。 第二章相关技术介绍 基于x m l 的数据交换中问件的研究与实现 第二章相关技术介绍 本章介绍了本文中主要使用或相关的中间件技术和x g l 技术。 2 1 中间件技术 计算机技术的飞速发展,各种各样的应用软件需要在各种平台之间 进行移植,或者一个平台需要支持多种应用软件和管理多种应用系统, 软、硬件平台和应用系统之间需要可靠和高效的数据传递或转换,使系 统的协同性得以保证。这些,都需要一种构筑于软、硬件平台之上,同 时对更上层的应用软件提供支持的软件系统,中间件正是在这个环境下 应孕而生的。 2 1 1 中间件的定义 中间件( m i d d l e w a r e ) 是基础软件的一大类,属于可复用软件的范畴。 它介于系统软件和用户的应用软件之间,使用系统软件所提供的基础服 务,衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、 功能共享的目的。也就是说,中间件在操作系统、网络和数据库之上, 应用软件的下层,其作用是为处于自己上层的应用软件提供运行与开发 的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。 由于中间件技术正处于发展过程之中,因此目前尚不能对它进行精 确的定义。但是业界普遍能接受的定义是:中间件是一种独立的系统软 件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资 源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通 信1 3 1 。 从中间件的定义可以看出,中间件是一类软件,而非一种软件。中 间件不仅仅实现互连,还要实现应用之间的互操作,是基于分布式处理 的软件。 基于x m l 的数据交换中问件的研究与实现 2 1 2 中间件分类 随着计算机软件技术的发展,中间件技术也已经日渐成熟,并且出 现了不同层次、不同类型的中间件产品。宏观上,从中间件所起的作用 来看,中间件技术可以分为三大类: 1 ) 数据类:用于数据的存取、利用和增值,此类中间件用于构建 以数据为中心的应用。 2 ) 处理类:把分布在网络节点上的各个应用或处理连接在一起, 形成一个统一的、协同工作的分布式应用。 3 ) 分布式构件类:支持构件式应用,未来应用的发展方向,目前 竞争激烈。 而按照i d c 的分类方法f 1 4 1 ,中间件则可细分为六类,分别是数据 访问中间件、基于远程过程调用的中间件、消息中间件、交易中间件、 对象中间件和终端仿真屏幕转换中间件等。 需要注意的是,中间件的分类是随着技术的进步而不断变化和拓展 的。上面的分类是比较传统和经典的,随着电子商务和企业信息化建设 的深入,中间件的类型会更加丰富起来。 2 1 3 中间件的作用 由于标准接口对于可移植性和标准协议对于互操作性的重要性,中 间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远 比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相 对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换 代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用 软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重 大投资。 世界著名的咨询机构t h es t a n d i s hg r o u p 在一份研究报告中归纳了 中间件的十大优越性【”】:节约应用开发成本、减少系统初期的建设成本、 缩短应用开发周期、降低项目开发风险、保护已有的投资、简化应用集 成、减少系统维护费用、提高应用开发质量、保证技术革新的连续性、 第二章相关技术介绍 基于x m l 的数据交换中问件的研究与实现 增强应用的生命力。 具体来说就是,中间件能屏蔽了低层操作系统的复杂性,使程序开 发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注 意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重 复工作,从而大大减少了技术上的负担。 2 2 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 ) ,起源于 s g m l ( s t a n d a r dg e n e r a l i z e dm a r k u pl a n g u a g e ) 。s g m l 是i s o ( 国际 标准化组织) 在8 0 年代推出的一个用来创建标记语言的语言标准。 s g m l 为出版业提供了一种将数据内容与显示分离开来的数据表示方 法,使得数据独立于机器平台和处理程序。s g m l 的确在许多大型出版 系统中很有用,但是它的复杂性使其难以直接应用到i n t c m e t 上【1 6 1 。x m l 是专为w e b 应用而设计的一个s g m l 的简化版本,它去除了s g m l 中 一些非常复杂而又用得很少的特性,使其更加精炼、简洁,更易于理解 和使用,从而更适合在网络环境下使用。 2 2 1 文档结构 由于现在的h t m l 标记实际上相当混乱,存在大量不规范的标记 ( 有的网页用i e 能正常显示,而用n e t s c a p en a v i g a t o r 则不行) ,所以 从一开始,x m l 的设计者就严格规定了x m l 的语法和结构,我们编写 的x m l 文件必须遵循这些规定f 1 7 1 ,其主要规则有: 1 ) x m l 文件的第一行必须是声明该文件是x m l 文件以及它所使 用的x m l 规范版本。在文件的前面不能够有其它元素或者注释。 2 ) 在x m l 文件中有且只能够有一个根元素。 3 ) 在x m l 文件中的标记必须正确地关闭。也就是说,在x m l 文 件中,控制标记必须有与之对应的结束标记。 4 ) 标记之间不得交叉、重叠,标记必须以规则性的次序来出现。 5 ) 属性值必须要用引号( ) 括起来。 6 ) 控制标记、指令和属性名称等英文要区分大小写。 l n 基于x m l 的数据交换中间件的耐f 究与实现 第二章相关技术介绍 下面是一个x m l 文档的简单实例 x m l 入门精解 张三 2 0 0 0 x m l 语法 李四 18 0 0 _i 第一行是处理指令,申明了此文档的版本和使用的编码。这与论文 所讨论的关系不大,故后面均不再提及。 上面列出的构造规则中,2 、3 、4 条充分表明了在本质上x m l 文 档是一种树形结构。x m l 由嵌套的元素构成,每个元素实际卜- 是树中 的一个结点,元素的标记为结点名。元素包含的下一级元素就是此结点 的子树。对x m l 文档中的某个元素来说,可以存在若干属性,属性是 用来描述元素的相关信息。上面的x m l 文档也可用图2 1 所示的树结 构图来表现: r lc e n a m e a u t l a o r ! a t ic e 图2 - 1x m l 树i 到 第二章相关技术介绍基于x m l 的数据交换中间件的研究与实现 2 2 2 技术特点 x m l 主要用于描述数据文档中数据的组织和安排的结构,非常简 单,只是为数据的结构化提供了一套规则。它的关注点不是数据在浏览 器中如何布局和显示,而是数据内容的组织和结构以便数据进行交流和 处理,有良好的可靠性与互操作性,有以下一些特点f 1 9 1 : 1 ) 具有可扩展性。x m l 是一种元标记语言,可以定义其它语言。 它的标记都是用户自己定义的,所以从理论上讲其类型的数量可以是无 限的。 2 ) 结构性强,易于处理。虽然x m l 在定义标签时很灵活,但对格 式的定义却非常严格,使其具有良好层次结构。正因为如此,我们可以 方便的编程对x m l 文档进行处理,实现系统与系统之间、机器与机器 之间信息的自动交互。 3 ) 纯文本,与平台无关。x m l 将数据保存在标准的文本文件中, 可以使用任何文本编辑工具来创建和编辑x m l 文档。它可无须任何更 改直接移植到其它平台上。 4 ) 数据存储与数据显示的分离。x m l 文档定义的仅仅是数据存储 的结构和关系,对于数据的显示没有任何的约束和限制,用户可以根据 自己的要求将文档中的数据这样或那样显示出来。这也是x m l 最值得 称道的地方。 5 ) 很强的链接能力。可以定义双向链接、多目标链接、扩展链接 和两个文档间的链接。 6 ) 公共的和被广泛接受的标准。w 3 c 是一个开放的、公共的组织, 其任务是开发i n t e m e t 上的技术和标准。x m l 就是由w 3 c 创建的,公 开而被广泛支持的标准。 2 2 3 数据模型 为了让x m l 用于更多的环境,如与数据有关的应用,围绕x m l 核心发展了许多相关的标准和工具,下面简单介绍一些在本文中将使用 到的一些技术标准。 基于x m l 的数据交换中间件的研究与实现 第= 章相关技术介绍 x m l 是一种存储结构化信息的语言,它通常用文档中的信息来坚 持特定的结构。这是通过定义一个描述文档结构的模式( 或者叫做数据 模型) 来完成。模式提供x m l 文档逻辑结构的一种表示,坚持模式的 x m l 文档可以说是有效的。模式可以指定: 文档中所允许的标签( 或者叫做元素) 的名称。 可以分配给每个元素的属性。 元素之间的关系哪些元素是子元素、哪些是父元素以及嵌 套的层数。 每个元素可以包括哪些数据文本、其它元素或者文本与元 素的组合。 文档有效性对于处理x m l 数据的应用程序米说至关重要,因为这 样,应用程序才可以期待文档中的数据以期望的结构出现。 文档类型定义d t d 是为x m l 文档定义模式的原始的且得到广泛 支持的方法。d t d 是基本x m l l 0 规范的一部分,起源于s g m l 。它 使用了特殊的语法来描述文档的结构。如2 2 1 小节中的x m l 文档所对 应的d t d 可以为: ! e l e m e n tb o o k s( b o o 妒) 东誊。譬 j q e l e 。m 、e n tb o o k ( n a m e ,a h t h o r , p r i 嗡 。 j ! e l e m e n t a u t h o r ( # p c d 蜗嗲 2 2 4 编程模型 d o m 和s a x 是当今最流行的两种用于解析和处理x m l 数据的编 程a p i 。这两种技术的根本差别在与客户应用程序得到x m l 文档数据 的方式不同。 d o m 模型是基于对象的。该模型通过解析器读入x m l 文档,构建 一颗驻留内存的对象树,然后应用程序就可以通过d o m 接1 3 随机访 问这些对象。通过对对象树的遍历、添加、删除完成对x m l 文档的操 作。 第二章相关技术介绍基于x m l 的数据交换中间件的研究与实现 而相反地,s a x 是事件驱动( e v e n t d r i v e n ) 的模型,其基本思想是 由s a x 解析器解析x m l 文档,在解析的过程中根据当前处理对象的属 性,向一个事件处理程序发送事件。事件处理器则根据事件类型处理该 信息,实现所需要的解析功能。表2 一l 描述了其不同之处。 d o m 和s a x 完全不同的处理模型导致了两者具有截然不同的一组 优缺点。d o m 读取整个文档并构建相应的节点树。这意味着d o m 对 c p u 和内存资源需求比较高,尤其是在处理较大的文档时更为明显,因 为有大量的信息必须处理并保存在内存中,这样将会有一个很明显延 迟。另外,因为所有的内容都同时位于内存中,d o m 提供对文档的随 机访问,当要修改文档是,d o m 提供的功能非常强大。 表2 1 d o m 与s a x 的区别 d o ms a x 创建一个位于内存中的文档对象树解析时不从x m l 文档中存储数据 位于内存中的文档树是可以修改的不支持对x m l 文档数据的修改和编写 必须在客户应用程序可用文档树之在解析时,文档的数据是可用的 前解析出完整的文档 s a x 不会在内存中保存x m l 文档,对c p u 和内存资源的需求也 没有d o m 那么高,并且处理速度要快一些。然而,因为整个文档从未 作为整体使用,所以对内容的随机访问是不可能的( 1 9 l 。客户应用程序应 根据自身特性来决定采用那种方法更合适。在本文的实现中,将结合使 用d o m 和s a x 两者的优点。 2 3 本章小结 本章介绍了论文中相关技术的基础知识,如中间件的定义、分类和 作用及x m l 的技术特点、数据模型和编程模型。 基于x m l 的数据交换中间件的研究与实现第三章数据变换方案的分析设计 第三章数据交换方案的设计 本章首先对数据的异构性进行归纳和总结,然后提出一个以x m l 作为公共数 据表示,解决各种数据冲突的数据交换方案,最后给出一个实例说明整个交换过程。 3 1 异构数据 数据的异构性是数据交换要解决的主要问题,分析数据的异构性, 总结其特点,对数据交换的顺利实现具有重要意义。 3 1 1 异构数据分析 异构数据是一个内容非常丰富的概念1 2 州,不仅指不同数据库系统之 间的数据是异构的,如o r a c l e 和s q ls e r v e r 数据库;而且还包括不同 结构的数据之间的异构,如结构化的数据、半结构化数据以及无结构数 据( 一般指文本文档) 。总的来说,数据的异构性主要包括下面三个方面: 系统异构、模式异构和逻辑异构。 系统异构是指数据所处的硬件平台、操作系统、网络环境等的不同, 具体如下: 1 ) 计算机体系结构不同:各个数据库可分别运行在大型机、小型 机、工作站、个人机或嵌入式系统中。 2 ) 操作系统不同:各个数据库系统所依存的操作系统可以分别是 u n i x 、l i n u x 、w i n d o w s 等等。 3 ) 开发语言不同:比如c ,c + + ,j a v a ,d e l p h i 等。 4 ) 网络环境不同:如t c p i p ,i p x s p x ,a t m ,以太网等。 模式异构是指数据所处的d b m s 本身的异构,数据库技术发展至 今,已先后出现了层次、网状、关系和面向对象等不同数据模式的数据 库管理系统。就算是同为一种数据模式如关系型,也有o r a c l e 、d b 2 、 s y b a s e 等之分。 逻辑异构主要指数据间的类型、命名、语义或语法等方面的不同, 如同样的数据结构表示不同的语义或者同样的语义由不同形式的数据 第三章数据交换方案的分析设计 基于x m l 的数据交换中问件的研究与实现 结构来表示。 在处理上述数据的异构性时难点主要表现在语法异构和语义异构 上。语法异构一般指源数据和目的数据之间命名规则及数据类型存在不 同。对数据库而言,命名规则指表名和字段名。语法异构相对简单,只 要实现字段到字段、记录到记录的映射,解决其中的名字冲突和数据类 型冲突。语义异构要比语法异构复杂得多,它往往是需要破坏字段的原 子性,即需要直接处理数据内容。常见的语义异构包括以下一些方式: 字段拆分、字段合并、字段数据格式变换、记录间字段转移等等【2 。 3 1 2 数据冲突分类 本文将数据由于异构性而表现出在格式、语法和语义等方面的不同 称之为数据冲突。不固定的数据冲突给数据交换带来了很大的困难。依 据关系型数据源的特点及具体处理时的方便性,本文将数据的异构性即 数据冲突分为两大类:同构冲突和异构冲突。同构冲突是指数据冲突双 方字段属性能够一一对应,只是在类型、格式、长度、精度等方面存在 差异。而异构冲突指冲突双方在数据项的构成上存在差异,即数据的组 成结构不同。 3 1 2 1 同构冲突 1 ) 命名冲突:有两种情况,一种是同名异义,即表示同一概念的 字段在不同的数据表中采用的是不同的名称。如在一个表中用a u t h o r 字段表示作者姓名而在另一表中直接用n a m e 字段来表示。第二种是同 义异名,即同样的字段名但表示不同的概念。如两个表都有n o m e 字段, 可能一个表示人名,另一个表示物名。在本文的系统中,主要考虑第一 种情况。第二种情况可通过数据库名和表名来加以限定区别。 2 ) 类型冲突:表示同一概念的字段,在不同的表里采用的数据类 型不一致。如年龄a g e 字段,在一个表中采用的是数值型,而在另一个 表中采用字符型。 3 ) 长度冲突:同一语义字段属性,交换双方的长度定义不同。 4 ) 精度冲突:字段属性精度不同,如两边都是数值,一表是精确 基于x m l 的数据交换中阃件的研究与实现第三童数据交换方案的分堑丝盐 到小数点后两位,另一表却只精确到小数点后一位。 5 ) 度量冲突:使用的度量单位不同,如同样表示重量,一表使用 公斤但另一表却使用克。 除了以上这些常见的同构数据冲突类型,还有如日期格式不同、默 认值不同、是否允许为n u l l 值等等许多,这些都要根据交换时的实际 情况和用户的不同需求来确定。 3 1 2 2 异构冲突 1 ) 合并分裂冲突:源数据表和目的数据表中的字段属性个数不同, 但是可以将源数据表中的几个字段合成目的表的某个字段,或者将源数 据表中某个字段分拆成目的表的几个字段,达到源表与目的表的匹配。 如下两个表c o m p a n y l 和c o m p a n y 2 : c o m p a n y l ( i d # ,n a m e ,c o u n t r y ,c i t y ,s t r e e t ,n u m b e r , d e s c ) ; c o m p a n y 2 ( i d # ,n a m e ,a d d r e s s ,d e s c ) ; 在c o m p a n y l 表转换成c o m p a n y 2 表的过程中,须将c o u n t r y 、c i t y 、 s t r e e t 和n u m b e r 四个字段合并成c o m p a n y 2 表中的a d d r e s s 字段;反之, 则须将a d d r e s s 字段分解为四个部分并存入c o m p a n y l 中的相应字段。 2 ) 表字段一值冲突:可以细分为表字段、字段- 表、字段- 值、值一 字段、表值、值表六种情况,以表3 1 、3 2 、3 3 中的几张关系表来详 细说明这几种冲突。 这些表是表现某公司员工业务发展情况,表3 - 1 的四张表是员工在 各季度完成的签约项目金额数,表3 2 是员工各个季度完成项目金额的 一个汇总,表3 3 是全年的一个明细表。 表3 - 1 各季度表 一季度: 二季度: 员工项目金额 f 0 0 1 2 0 0 0 0 21 8 0 三季度 四季度 第三章数据交换方案的分析设计基于x m l 的数据交换中问件的研究与实现 表3 - 2 员工季度统计表 员工一季度二季度三季度四季度 0 0 l2 0 0 1 6 0 1 8 01 5 0 0 0 21 8 0 2 2 0 1 2 01 4 0 表3 - 3 公司明细表 员工 季度 项目金额 0 0 l 一季度 2 0 0 0 0 2一季度1 8 0 0 0 1 二季度1 6 0 0 0 2二季度 2 2 0 0 0 1三季度1 8 0 0 0 2 三季度 1 2 0 0 0 1四季度1 5 0 0 d 2四季度1 4 0 表字段与字段表冲突:相互交换的两个表,一个表的表名在另一 表中却以字段的形式来表现。如表3 - l 中每个季度有一张表,它们表名 在表3 2 中却对应为一个字段的名称。这就是表字段冲突,反之则是字 段一表冲突。 表值与值表冲突:表示相同的信息,在一个表中是其表名,而在 另一表中却是某字段的值。如在表3 1 与表3 3 交换时,季度表的表名 对应着公司明细表中季度字段的值。这种冲突就是表值或值表冲突。 字段值与值一字段冲突:类似的,字段值冲突是某表的字段的名称 与另一表的某字段的值相对应。在上面的例子中就是表3 - 2 中的一季度、 二季度等字段与表3 3 中季度字段的值对应。 在实际应用中,表字段、字段表、值一表和值字段四种冲突可以 转变成命名冲突或无意义。如表3 1 和表3 2 的表一字段冲突,可以看成 是表3 - 1 中的“项目金额”字段与表3 2 中的“一季度”字段之间的命 名冲突。所以,在下面的论文中仅讨论表值和字段值这两种数据冲突 情况。 1 8 基于x m l 的数据交换中间件的研究与实现 第三章数据交换方案的分析设计 3 2 数据交换方案设计 3 2 1 数据交换方案总览 由上面的分析可知,异构数据之间进行交换的核心问题是如何解决 它们同构和异构冲突所带来的数据转换问题。本文将利用帆作为交 换的公共数据表示,在表示数据的时候,将其结构信息和值信息分开来 描述,分别定义为数据结构文档和数据值文档。通过分析结构信息文档, 解决数据冲突,完成数据值文档的转换并最终完成数据交换。 本文所设计的数据交换方案主要有数据提取、数据分析、数据转换 和数据加载等步骤,如图3 1 所示。 图3 - 1 数据交换方案 数据提取是根据用户的指令将数据从关系数据库提取出来,并将提 取出来的数据转换成x m l 格式的过程。数据加载是数据提取的反过程, 即将转换好的x m l 格式的数据按照要求加载到相应的关系表中。这两 部分与具体实现相关,将在下一章做详细讨论。 数据分析是对源和目的数据的结构信息x m l 文档进行分析,并结 合用户定义的转换规则文件生成一个用于数据值x m l 文档转换的映射 文件的过程。 数据转换是通过利用数据分析生成的映射文件协助完成数据值 x m l 文档转换的过程。 数据在从数据库中提取出来后直至数据加载到目标数据库之前都 是以预定义好格式的x m l 文档形式存在。而且数据分析和数据转换中 所使用的转换规则文件及映射文件均为x m l 格式的文档。在对这些 第三章数据交换方案的分析设计 基于x m l 的数据交换中问件的研究与实现 x m l 文档进行处理时应根据文档的特点及编程要求来选择相应编程模 型。 在进行数据分析时,需要对数据的结构信息文档和用户规则文档进 行随机访问和多次遍历,同时这些文档一般比较小,所以采用基丁 对象 的d o m 编程模型。而在数据值实际转换必须采用s a x 编程模型,因 为在数据交换时的x m l 数据值文档町能非常大,如果也采用d o m 技 术的岳,那么需要将整个数据值文档都读入内存并生成一棵x m l 树, 这不但会严重影响系统运行处理速度,而且极易造成内存溢出并导致系 统崩渍。 3 2 2 公共数据表示 关系数据库中的数据都是规则的二维结构关系表,所以能使用很简 单的x m l 文件来表示。在本文中,源数据和目标数据的值信息和结构 信息分别用v i e w d a t a 和v i e w s t r u c t 文件来表示。在数据分析时只需使用 结构文件v i e w s t r u c t ,而不用对可能极大的值文件v i e w d a t a 进行处理。 表示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字智慧方案基于灾害数字仿真的应急管理融合研究
- 仪表工试题(技师)复习试题有答案
- AutoCAD 2020使用教程课件:基本操作
- 2024年北京卷语文(纯答案版)
- 职业资格-桥梁隧道工程真题库-6
- 工程法规市场策略试题及答案
- 船厂安全试题及答案
- 医院科室主任考试试题及答案
- 政工师职称考试试题及答案
- 电车翻车考试题及答案
- 火灾事故应急演练桌面推演
- 图书馆藏书出入库管理制度
- 国家开放大学《统计与数据分析基础》形考任务1-5答案
- 乐山大佛完整版本
- 校长在班主任培训会上的讲话范文
- 北京市海淀区2023-2024学年五年级上学期数学期末试卷
- GB/T 19609-2024卷烟用常规分析用吸烟机测定总粒相物和焦油
- 公路工程标准施工招标文件(2018年版)
- 建筑工程一切险保险单
- 浙江宁波市杭州湾大桥发展有限公司招聘笔试题库2024
- 2024年内蒙古呼和浩特市中考英语试卷真题(含答案解析)
评论
0/150
提交评论