《计算机科学与技术毕业论文设计基于XML数据交换的中间件交换初步研究.doc》由会员分享,可在线阅读,更多相关《计算机科学与技术毕业论文设计基于XML数据交换的中间件交换初步研究.doc(26页珍藏版)》请在三一办公上搜索。
1、海 南 大 学毕 业 论 文(设计)题 目: 基于XML数据交换的中间件交换初步研究 学 号: 20081602B060 姓 名: 年 级: 08级 学 院: 信息学院 系 别: 计算机系 专 业: 计算机科学与技术 指导教师: 完成日期: 2012 年 05 月 01 日 摘 要本论文研究数据交换问题,其目的是为了实现个数据之间互通互联,信息共享。在数据交换中关键的两点是各数据源之间数据异构的问题及交换过程动态配置问题。针对上述两个问题,本文使用XML及插件技术提供了一种解决的思路。本文首先针对数据的异构性进行归纳总结,然后使用XML分别表示数据的结构信息和值信息。通过对数据结构文件和用户定
2、义的规则文件进行分析生成映射文件,从而解决数据冲突。在此基础上,设计实现了一个基于XML的数据交换中间件(XEDM)系统。系统将数据交换的处理方法和流程相分离,用户可以开发不同的流程处理插件,以满足交换过程的动态配置。这些极大地增强了系统的适应性、扩展性。本文最后对(XEDM)系统的设计和实现做了总结。关键词:数据交换; 数据冲突; XML; 中间件ABSTACTThis paper reserches on data exchange.Its purpose is to realize the interconnection and information sharing among eve
3、ry “detached islang of information”.In data enchange process,two key points are data isomerism and dynamic configuration.The adoption of XML.and piugin technology has offered a kind of new of settlement for data exchange.This paper has carried on the induction and the summary according to the data i
4、somerism.Then it expresses the structure information and value information separately with two XML files.It realize data exchange through the analysis of data structure files and rule files user defind. After that the paper has designed and implemented a XML-based Data Exchange Middleware(XDEM). XDE
5、M separates treatment method from data processing procedure.User can customize different for different occasione so as to stregthen adaptability and expansion.In the concluding part,the paper summarize the design and realize of XDEM and suggested the future improvement on it.Key words: data exchange
6、,Data Confilct,XML,Middleware 目 录摘要. 1ABSTRACT.1第一章绪论. . 21.1研究背景. 21.1.1模式集成法. . 21.1.2数据复制方法. .31.2研究现状. 31.3研究目标与意义. .51.4论文工作内容. 5第二章相关技术介绍. .52.1中间件技术. 52.1.1中间件的定义. .62.1.2中间件分类. . . .62.1.3中间件的作用. .72.2XML技术. 72:2.1文档结构. .72.2.2技术特点. .72.2.3数据模型. .82.3本章小结. 8第三章数据交换方案的设计. 83.1异构数据.83.1.1异构数据分
7、析.83.1.2数据冲突分类. .93.2数据交换方案设计. . .113.2.1数据交换方案总览. .123.2.2公共数据表示. 123.2.3数据分析. 123.24数据转换. 163.3数据交换实例. 173.4本章小结. 19第四章数据交换中间件的设计实现. 194.1系统总体结构设计. .194.2配置管理. 20 4.2.1配置信息管理结构. 204.2.2配置信息管理器. 214.3任务管理. 214.4主控制器. 224.5数据适配器. 224.6本章小结. . . .22第五章总结与展望. 225.1论文总结. 23参考文献. 23致谢. 25第一章 绪 论本章是全文的绪论
8、部分,主要介绍了论文相关的研究背景,研究现状,研究目的、意义。1.1研究背景人类已经进入21实际了,中国也已经加入,都将面临全球经济一体化的市场环境,竞争日益激烈。谁能迅速的掌握市场信息,并随市场变化而动,谁就能在竞争中立于不败之地。为此,很多企业建立更多的信息管理系统来提高企业的效率。然而不幸的是大部分企业或政府部门在其信息管理系统建设初期并未进行统一的规则,采用了不同的硬件平台,不同的操作系统或不同的数据库技术构建起来的管理系统就像是一个个“信息孤岛”。“信息孤岛”的存在造成了整个企业信息平台存在大量的数据冗余、垃圾数据,难以保证数据的一致性,降低了信息的使用效率和利用率。针对这一问题,人
9、们已经开始进行数据集成方面的研究,也形成了一些成熟的框架和模型,其中最主要的是模式集成方法和数据复制方法。1.1.1模式集成方法模式集成是人们最早采用数据集成方法,其基本思想是在构建集成系统时将个数据源的视图集成系统时将各自的数据源的数据视图即成为全局模式,使用户能够按全局模式透明地访问各数据源的数据。全局模式描述了数据源共享数据的结构、语义及操作等,用户直接在全局模式的基础上提交请求。模式集成的方法的特点是直接为用户提供透明的数据访问方法。模式集成主要解决的两个基本问题是:构建全局模式与数据源数据视图间的映射关系;中间件集成方法是现有的一种典型的模式集成方法。中间件集成方法中间件集成方法通过
10、统一的全局数据模式来访问的异构的数据库、遗留系统、Web资源等,如图1.1所示。中间件位于异构数据源系统和应用系统之间,向下协调各数据源系统,向上为访问集成数据的应用提供统一的数据模式和数据访问的通用接口。个数据源的应用仍然完成它们各自的任务,中间件系统则主要集中为异构数据提供一个高层次检索服务。中间件注重于全局的查询的处理和优化。1.1.2 数据复制方法数据复制的方法将各个数据源的数据复制到与其相关的其它数据源上,并维护数据源整体上数据的一致性,提高信息共享利用效率。数据的复制可以使整个数据源的复制,也可以是仅对变化的传播和复制。数据复制的方法可以减少用户使用的数据集成系统对异构数据源的数据
11、访问量,从而提高数据访问的性能。目前比较常见得数据仓库使用的正是数据复制方法。数据仓库是在企业管理和决策中面向主题的、集成的数据方法。1.2研究现状数据库的异构问题自其产生之日起就受到个数据库厂家及许多数据库专家的关注。经过长期的研究、探索和实践,人们已取得不少的成果,提出了许多解决了许多异构数据的交换和方法,总的来说,可以分一下几种。1) 使用数据库自带工具进行转换一般情况下,数据库管理系统都提供将外部条件中的数据转移到本身数据库表中的数据装入工具。比如oracle提供的将外部文本文件中的数据转移到oracle数据库表中的数据装入工具sql loader,microsoft公司开发的sql
12、server中的数据转换工具和powpersoft公司的powerBuilder中提供的数据管道。这些数据转移工具可以以多种灵活的方式进行数据转换,而且由于它们是数据库管理系统自身所附带的工具,执行速度很快,不需要的支持。但是使用这些数据转换工具的缺点是它们不是独立的软件产品。)利用中间件数据库的转换在两个异构数据库之间进行数据交换时还可以使用“中间数据库”的方法,即在实现两个具体数据库之间的转换时,依据关系定义、字段定义,对要转出的数据库生成脚本,将数据源从源数据库中读出通过中间数据库写入目的数据库中。这利用中间数据库的转换办法,所需转换模块少,且扩展性强,但缺点是在实现的过程中比较复杂,转
13、换质量不高,转换过程长。3)设置传送变量转换借助数据库应用程序开发工具与数据库连接的强大功能,通过设置源数据库与目的数据库两个不同的传送变量,同时连接两个数据库,实现异构数据库之间的直接转换。4 ) 通过开发数据库组件的转换利用等数据库应用程序开发技术,通过源数据库与目的数据库组件来存取数据信息,实现异构数据库之间的直接转换。通过组件存取数据。1.3研究目标与意义目前,各数据库厂商虽然提供了很多工具来提取和转换数据,但是这些工具教依赖与具体的数据库厂商提供的产品,通用性不强。而其它较成熟的通用异构数据转换产品非常少。针对以上情况,本文设计了一个具有可扩展性、可制定性及与平台无关性的数据库交换中
14、间件系统,能很好的消除数据在结构和语义上的差异。数据交换问题的解决,能为数据集成提供有力的支持,实现企业各信息系统的信息系统的信息共享;能充分利用现有资源,避免重复开发,保护原有系统的投资;还能避免“信息孤岛”造成的重复录入、资源浪费、数据不一致性问题,为开发新的应用系统提供基础业务数据。1.4论文工作内容本论文研究的数据交换实质上是一个将源数据源中的数据提取出来,经过处理和转换,得到符合目标数据源结构式的数据并加载到目标数据源中的过程。在顺利实现数据交换,一个重要的问题就是如何消除个数据源的异构性,即解决数据源在结构和语义上的不同。由于目前市场上关系数据源时的情况。此外,随着业务需求的发展变
15、化,可能随时都会有新的数据源加入到数据交换的队伍中来,或者是需要对已有的数据进行交换。修改。如何随需而变,灵活配置就是数据交换中须解决的另一个问题。本文通过研究使用中间来实现个异构数据间的数据转换。第二章 相关技术介绍2.1 中间件技术计算机技术的飞速发展,各种各样的应用软件需要在各种平台之间进行移植,或者一个平台需要支持多种应用软件和管理多种应用系统,软、硬件平台和应用系统之间需要可靠和高效的数据传递或转换,使系统的协调性得以保证。这些,都需要一种构筑于软、硬件平台之上,同时对更上层得应用软件提供支持的软件系统,中间件正式在这个环境下应孕而生的。2.1.1 中间件的定义中间件是基础软件的一大
16、类,属于可复用软件的范畴。它介于系统软件和用户的应用软件之间,使用系统软件所提供的基础服务,衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。也就是说,中间件在操作系统、网络和数据库之上,应用软件的下层,其作用是在为处于自己上层的应用的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。由于中间件技术正处于发展过程之中,因此目前尚不能对它进行精确的定义。但是业界普遍能接受的定义是:中间件是一种独立的系统软件或服务程序。由中间件的定义可以看出,中间件为一类软件而非一种软件。,它不仅仅实现互连,还要实现应用之间的互操作,是基于分布式的处理软件。2.
17、1.2 中间件分类随着计算机软件技术发展,中间件技术也已经日近成熟,并且出现了不同层次、不同类型的中间件技术可以分为三大类:1) 数据类:用于数据的存取、利用和增值,此类中间件用于构建以数据为中心的应用。2) 处理类:把分布在网络节点上的各个应用或处理连接在一起,形成一个统一的、协同工作的分布式应用。3) 分布式构建类:支持构件式应用,维埃里应用的发展方向,目前竞争激烈。而按照的分类方法,中间件则可细分为六类,分别是数据访问中间件、基于远程过程调用的中间件、消息中间件、交易中间价、对象中间件和终端仿真屏幕转换中间件等。需要注意的是,中间件的分类是随着技术的进步而不断变化和拓展的。上面的分类是比
18、较传统经典的,随着电子商务和企业信息化建设的深入,中间件的类型会更加丰富起来。2.1.3 中间件的作用由于标准接口对于可移植性喝标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的借口定义不变,应用软件几乎不需要任何修改,从而保护了企业在应用软件开发和维护中的重大投资。世界著名的咨询机构The Standish Group在一份研究报告中归纳了中间件的十大优越性:节约应用开发成本、减少系
19、统初期的建设成本、缩短应用开发周期、降低项目开发风险、保护已有的投资、简化应用集成、减少系统维护费用、提高应用开发质量、提高应用开发质量、保证技术革新的连续性、增强应用的生命力。具体来说就是,中间件能屏蔽了底层操作系统的复杂性。2.2 技术,可扩展标记语言(Eetensible Markup Language),起源于SGML(Stangard Generalized Markup Language)。是ISO(国际标准化)在80年代推出的一个用来创建标记语言的语言标准。为出但也提供了一种将数据内容与显示分离开来的数据表示方法,使得数据独立于器平台和处理程序。2.2.1 文档结构由于现在的HT
20、ML标记实现上相当混乱,存在大量不规范的标记,所以从一开始,的设计者就严格规定了XML的语法和结构,我们编写的XML文件必须遵循这些规定。其主要原则有:1) 文件的第一行必须是声明该文件是XML文件以及它所使用的规范版本。在文件的前面不能够有其它元素或者注释。2) 在XML文件中有且只能够有一个根元素。3) 在文件中的标记必须正确的关闭。也就是说,在XML文件中,控制标记必须有与之对应的结束标记。4) 标记之间不得交叉、重叠,标记必须以规则性的次序来出现。5) 属性值必须要用引号(“”)括起来。6) 控制标记、指令和属性名称等英文要区分大小写。下面是一个文档的简单实例?xml version=
21、”1.0”ending=”gb2312”booksbooknameXML 入门精解nameauthor张三authorprince uint=”人民币”20.00pricebookbooknameXML语法nameauthor李四authorprince uint=”人民币”18.00pricebookbooks第一行是处理指令,申明了此文档的版本和使用的编码。这与论文所讨论的关系不大。上面的文档也可用下图所示的树结构图来表现:2.2.2 技术特点主要用于描述数据文档中数据的组织和安排的结构,非常简单,只是为数据的结构化提供了一套规则。它的关注点不是数据在浏览器如何布局和显示,而是数据内容和结
22、构以便数据进行交流和处理,有良好的可靠性与互操作性,有以下一些特点:)具有可扩展性。XML是一种元标记语言,可以定义其它语言。它的标记都是用户自己定义的,所以从理论上讲其类型的数量可以是无限的。2)结构性强,易于处理,虽然XML在定义标签时很灵活,但对格式的定义却非常严格,使其具有良好层次结构。3)纯文本,与本台无关。XML将数据保存在标准的文档文件中,可以使用任何文本编辑工具来创建和比那几XML文档。4)数据存储与数据显示的分离。文档定义的仅仅是数据存储的结构和关系,对于数据的显示没有任何结束和限制,用户可以根据自己的要求将文档中的数据这样或那样显示出来。)很强的链接能力。可以定义双向链接、
23、多目标链接、扩展链接和两个文档之间的链接。)公共的和广泛接受的标准。W3C是一个开放的、公共的组织,其任何事开发Internet上的技术和标准,就是有创建的,公开而被广泛支持的标准。2.2.3 数据模型为了让用于更多非让环境,如与数据有关的应用,围绕XML核心发展了许多相关的标准和工具,下面简单介绍一些在文本讲使用到的一些技术标准。是一种存储结构化信息的语言,它通常用文档中的信息来坚持特定的结构。这是通过定义一个描述文档结构的模式来完成。模式可以指定: 文档中所允许的标签的名称。 可以分配给每个元素的属性。 元素之间的关系哪些元素是子元素、哪些元素是父元素以及嵌套的层数。 每个元素可以包括哪些
24、数据文本、其它元素或者文本与元素的组合。文档有效性对于处理数据的应用程序来说至关重要,因为这样,应用程序可以期待文档中的数据以期望的结构出现。文档类型定义DTD是为XML文档定义模式的原始的且得到广泛支持的方法。基本XML1.0规范的一部分,起源于SGML。它使用了特殊的语法来描述文档的结构。2.3 本章小结本章介绍了论文中相关的基础知识,如中间件的定义、分类和作用及的技术特点、数据模型。第三章数据交换方案的设计3.1 异构数据数据的异构是数据交换要解决的主要问题,分析数据的异构性,总结其特点,对数据交换的顺利实现与有重要的意义。3.1.1 异构数据分析异构数据是一个内容非常丰富的概念,不仅指
25、不同数据库系统之间的数据异构的,如oracle和SQL Server数据库;而且还包括不同结构的数据之间的异构,如结构化地数据、半结构化地数据以及无结构数据(一般指文本文档)。总的来说,数据的异构性主要包括下面三个方面:系统异构、模式、异构和逻辑异构。系统异构是指数据所处的硬件平台、操作系统、网络环境等的不同,具体如下:1)计算机体系结构的不同:各个数据库可分别运行在大型机、小型机、工作站、个人机或嵌入式系统中。2)操作系统不同:各个数据库系统所以存的操作系统可以分别是Unix、Linux、Windows等等。3)开发语言不同:比如C、C+、Java、Delphi等。4)网络环境的不同:如TC
26、PIP,SPX,ATM,以太网等。模式异构是指数据所处的DBMS本身的异构,数据库技术发展至今,已先后出现了层次、网状、关系和面向对象等不同数据模式的数据库管理系统。就算是同为一种数据模式如关系型,也有oracle、DB2、sybase等之分。逻辑异构主要指数据间的类型、命名、语义或语法等方面的不同,如同样的数据结构表示不同的语义或者同样的语义由不同形式的数据结构来表示。在处理上述数据的异构性时难点主要表现在语法异构和语义异构上。语法异构一般指源数据和目的数据之间命名规则及数据类型存在不同。对数据库而言,命名是规则指表明和字段名。语法结构相对简单,只要实现字段到字段记录到记录的映射,解决其中的
27、名字冲突和数据类型的冲突。语义异构要比语法异构要复杂得多,它往往是需要破坏字段的原子性,即需要直接处理数据内容。常见的语义异构包括以下一些方式:字段拆分、字段合并、字段数据格式变换、记录间字段转移等等。3.1.2 数据冲突分类本文数据由于异构性而表现出在格式、语法和语义等方面的不同称之为数据冲突。不固定的数据冲突给数据交换带来了很大的困难。依据关系型数据源的特点及具体处理时的方便性,本论文将数据的异构性即数据冲突分为两大类:同构冲突和异构冲突。同构冲突是指数据冲突双方字段属性能够一一对应,只是在类型、格式、长度、精度等方面存在差异。而异构冲突指冲突双方在数据项的构成存在差异,即数据的组成结构不
28、同。3.1.2.1 同构冲突1)命名冲突:有两种情况,一种是同名异义,即表示同一概念的字段在不同的数据表中采用的是不同的名称。第二种是同义异名,即同样的字段名但表示不同的概念。本论文主要考虑第一种情况。2)类型冲突:表示同一概念的字段,在不同的表里采用的数据类型不一致。如年龄age字段,在一个表中采用的是数值型,而在另一个表中采用字符型。3)长度冲突:同一语义字段属性,交换双方的长度定义不同。4)精度冲突:字段属性精度不同,如两边都是数值,一表是精确到小数点后两位,另一表却只精确到小数点的后一位。5)度量冲突:使用的度量单位不同,如同样表示重量,仪表使用公斤但另一表却使用克。除了以上这些常见的
29、同构数据的冲突类型,还有日期格式不同、默认值不同、是否允许NULL值等等许多。3.1.2.2 异构冲突1)合并分裂冲突:数据源表和目的数据表中的字段属性个数不同,但是可以将源数据表中的几个字段合成目的的表的某个字段,或者将源数据表中某个字段分拆目的表的的几个字段,达到源与目的表的匹配。如下两个表company1和company2:Company1(id#,name,county,city,street,number,desc);Company2(id#,name,address,desc);在company1表转换成company2表的过程中,须将county、city、street和numb
30、er四个字段合并成company2合成表中的address字段;反之,则须将address字段分解为四个部分并存如company1中的相应字段。2)表-字段-值冲突:可以细分为表-字段、字段-表、字段-值、值-字段、表-值、值-表六种情况,以表3-1、3-2、3-3中的几张关系表来详细说明这几种冲突。这些表是表现某员工自身发展情况,在表3-1的四张表是员工各季度完成的签约项目额数,表3-2是员工各个季度完成项目金额的一个汇总,表3-3是全年的一个明细表。表3-1 各季度表一季度: 二季度:表3-2 员工季度统计表表3-3公司明细表表-字段与字段-表冲突:相互交换的两个表,一个表的表名在另一个表
31、中却以字段的形式来表现。如表3-1中每个季度有一张表,它们表明在表3-2中却对应为一个字段的名称。这就是表字段的冲突,反之则是字段表的冲突。3.2 数据交换方案设计3.2.1 数据交换方案总览由上面的分析结构可知,异构数据之间进行交换的核心问题是如何解决它们同构和异构冲突所带来的数据转换问题。斑纹将利用XML作为交换的公共数据表示,在表示数据的时候,将其结果信息和值信息分开来描述,分别定义为数据结构文档和数据值文档。通过分析结构信息文档,解决数据冲突,完成数据值文档的转换并最终完成数据交换。本文所设计的数据交换方案主要有数据提取、 数据分析、数据转换和加载等步骤,如图3-1所示。数据提取是根据
32、用户的指令的将数据从关系数据库提取数来,并将提取出来的数据转换成XML格式的过程。数据加载是数据提取的反过程,即将转换好的格式的数据按照要求加载到相应的关系表中。这两部分与具体实现相关,将在下一章详细讨论。数据转换是通过利用数据分析生成的映射文件协助完成数据值XML文档转换过程。3.2.2 公共数据表示关系数据库中的数据都是规则的二位结构关系表,所以能使用很简单的文件来表示。在本文中,源数据和目标数据的值信息和结构信息分别用viewdata 和viewstruct文件来表示。在数据分析时只需要使用结构文件viewstruct,而不用对可能极大的之文件viewdata进行处理。3.2.3 数据分
33、析用户通过比较源数据与目标之间结构的差异,定义好源与目的数据的转换规则文件。数据分析的功能就是通过分析数据源、目标结构和转换规则三个文件得到一个进行数据值文档交换时所需的映射文件,如图3-2显示:3.2.3.1 映射文件映射文件是由源结构文件、目标结构文件和用户定义的转换规则文件三者经数据分析处理而得到的。此文件是程序在进行实际的数据转换时的控制信息,是面向程序处理的,其格式应当方便程序编写。依据用户定义的转换规则,下面分为四种情况介绍。1)处理normal元素包含的字段,即同构冲突,如图3-3所示。2)处理field_value元素包含的字段,即字段-值冲突,如图3-4所示。处理流程与1)类似,非别赋予field元素sid、did、vid和type属性值,然后将sid和vid节点当成normal冲突来生成field元素下的execute子元素。3)处理assembly元素包含的字段,即合并分拆冲突,如图3-5所示。处理时需要注意合并与分拆的区分,首先取出此assembly元素中所有的sid和did的子元素,分别统计其个数,如只有一个sid元素,则进入分拆冲突处理,