(计算机应用技术专业论文)基于xml的异构数据集成研究.pdf_第1页
(计算机应用技术专业论文)基于xml的异构数据集成研究.pdf_第2页
(计算机应用技术专业论文)基于xml的异构数据集成研究.pdf_第3页
(计算机应用技术专业论文)基于xml的异构数据集成研究.pdf_第4页
(计算机应用技术专业论文)基于xml的异构数据集成研究.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机应用技术专业论文)基于xml的异构数据集成研究.pdf.pdf 免费下载

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

文档简介

哈尔滨工程大学硕士学位论文 摘要 随着信息技术的发展,任何一个独立单位都有可能成为一个异构的数据 源。而企业又需要访问各种异构数据源,为了满足这种需求,必须有一种系 统能够支持异构数据源的数据集成。 首先讨论了异构数据集成时所面临的问题、集成的策略以及所用的技术, 在此基础上提出了一个解决异构数据源集成的总体解决方案,并实现了该系 统的核心部分。由于x m l 语言的灵活性和扩展性使其可以对不同应用的数据 进行描述,因此该集成系统采用基于x m l 的模型作为公共模型,将各种异构 数据都转换为x m l 文档来进行交换。 本文提出的异构数据集成系统解决方案采用了基于目前因特网系统的最 新三层体系结构,即浏览器w e b 服务器数据库服务器结构。本系统可以 划分成三层结构:数据源层,x 札中间件层,应用层。进而探讨了中间件层 的实现技术。综合运用了一些新的标准、技术和支持环境工具,如:j s p ,j a v a , x m l ,j a v aw e bs e r v e r 等。为了便于设计和实现,中间件层可以被划为三层 结构。数据层,功能层,表示层。在此基础上,应用了上述的异构数据源集 成的解决方案,并实现了该系统的核心部分。给出具体的程序类图及代码实 现。并对一个常用的论坛的程序进行了改造。主要目的是示范从一个s e r v l e t 中使用x s l t ,及其j a x p 将用于与d o m 一起创建一些动态的x m l 数据,然后 使用x s l t 样式表将这些数据转换到h t m l 。 关键词:异构数据;数据集成;x m l :j a x p ;x s l t 哈尔滨工程大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y e v e nas i n g l e d e p a r t m e n tp r o b a b l yb e c o m e sah e t e r o g e n e o u sd a t as o u r c e n o w a d a y s ,t h e c o m p a n i e sn e e dt ov i s i ta 1 1s o r t so fh e t e r o g e n e o u sd a t as o u r c e s i n o r d e rt om e e tt h i sd e m a n dw en e e do n es y s t e m ,w h i c hc a ns u p p o r tt h e i n t e g r a t i o no ft h ed i f f e r e n td a t as o u r c e s t h et h e s i sf i r s td i s c u s s e st h ed i f f i c u l t yi nt h ei n t e g r a t i o no f t h ep r o c e s so ft h eh e t e r o g e n e o u ss o u r c ed a t a b a s e ,t h es t r a t e g yo f i n t e g r a t i o n ,t h et e c h n i q u eo fi n t e g r a t i o n t h e nt h et h e s i sp r o p o s e s a no v e r a l lp r o j e c t ,w h i c hc a ns o l v et h ei n t e g r a t i o no fh e t e r o g e n e o u s d a t as o u r c e s a n da tt h es a m et i m e ,t h ec o r ep a r to ft h es y s t e mi s r e a l i z e d d u et ot h ea g i l i t ya n dt h ee x p a n s i b i i i t yo fx m ll a n g u a g e i tc a nd e s c r i b ed a t af o rd i f f e r e n t a p p l i c a t i o n s t h u s ,t h i s i n t e g r a t i o ns y s t e mu s e sx m lm o d e la st h e i rp u b l i cm o d e la n da l lo ft h e h e t e r o g e n e o u sd a t as o u r c e sa r ec h a n g e di n t ox m ld o c u m e n tf o rt h e f u r t h e re x c h a n g e t h em e t h o do fd a t ai n t e g r a t i o np r o p o s e di nt h ist h e s isb a s e so n t h ep o p u l a rt h r e e l a y e r ss y s t e mo fi n t e r n e t ,b r o w s e r w e bs e r v e r d b m s t h es y s t e md i s c u s s e di nt h i st h e s i si sd i v i d e di n t ot h r e el a y e r s :l a y e r o fd a t as o u r c e s :l a y e ro fx m lm i d w a r e :l a y e ro fa p p l i c a t i o n a m o n g t h e s e ,t h el a y e ro fm i d - w a r ei st h ek e yp a r ti nt h i ss y s t e m ,a n dt h e n w ed e m o n s t r a t et h et e c h n i q u eu s e di nt h i sl a y e r s o m eo fn e ws t a n d a r d , t e c h n i q u ea n dt d ea r ei n t r o d u c e d ,s u c ha sj s p ,j a v a ,x m l ,j a v aw e b s e r v e ra n de t c f o rt h ec o n v e n i e n c eo fd e s i g na n dr e a l i z a t i o n ,t h e m i d w a r el a y e ri sd i v i d e di n t ot h r e el a y e r s :d a t al a y e r ,f u n c t i o nl a y e r a n dp r e s e n t a t i o nl a y e r t h e no nt h eb a s eo ft h eo v e r a l lp r o j e c t ,w h i c h c a ns o l v et h ei n t e g r a t i o no fd i f f e r e n td a t as o u r c e ,t h ec o r ep a r to f 哈尔滨工程大学硕士学位论文 t h es y s t e mi sr e a l i z e d w er e c o n s t r u c tad i s c u s sp r o g r a mw h i c hi s p o p u l a ri nt h ei n t e r n e tt od e m o n s t r a t eh o wt ou s ex s l tf r o mas e r v l e t , h o wt oc r e a t ed y n a m i cx i i ld a t aw i t h3 k x pa n d d o ma n dt r a n s f e rt h i sd a t a i n t oh t m lw i t hx s l t k e yw o r d s :h e t e r o g e n e o u sd a t as o u r c e :d a t ai n t e g r a t i o n :x m l ;j a x p x s l t 哈尔滨工程大学硕士学位论文 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导 师的指导下,由作者本人独立完成的。有关观点、 方法、数据和文献的引用已在文中指出,并与参 考文献相对应。除文中已注明引用的内容外,本 论文不包含任何其他个人或集体已经公开发表的 作品成果。对本文的研究做出重要贡献的个人和 集体,均已在文中以明确方式标明。本人完全意 识到本声明的法律结果由本人承担。 作者( 签字) : 日期:矽猡年月万日 哈尔滨工程大学硕十学位论文 1 1 课题的研究背景 第1 章绪论 随着计算机技术,特别是i n t e r n e t 技术的迅猛发展,在许多行业、单位 或机构、部门内部逐步都实现了业务、信息的计算机化管理。但是,各个行 业、部门或机构由于业务和功能归属不同,因此都是根据自身的需要,构建 了许多相互隔离的信息服务和管理系统。甚至在一个单位( 如一个企业、一 个学校) 内部各部门所采用的计算环境由不同平台组成,而不是固守唯一的 一个平台。这样随着时间的推移和技术的进步,这些由不同核心技术构建的 信息系统就像一个个“信息孤岛”,各自有着不同的处理对象、操作方法和 专用客户端,在各个环节之间存在着数据交流和部门协同的问题。每个部门 或单位就是一个数据源,每个数据源都是异构的,因而他们之间的信息和组 织都不一样,这就构成了一个巨大而复杂的异构数据环境。那么如何集成、 访问这些数据呢? 首先,关键的一个问题是必须研究他们之间异构数据的集 成问题,只有将这些孤立的数据都集成起来,提供给用户一个统一的视图, 才有可能从巨大的数据资源中获取所需的东西。其次是选用合适的技术进行 数据分析、集成和处理。集成是一项很艰巨的工作,因为信息的增加和信息 源的多样性结合在一起,检索有用信息的工作变得非常复杂。企业必须不仅 能访问传统的应用程序来源( 比如关系数据库) ,还要能访问可扩展标记语文 档、文本文档、扫描的图像、视频剪辑、传入的新闻、w e b 内容、电子邮件、 分析性三维数据和特殊用途的存储( 包括内部和外部) 。另外,一个实用的信 息服务数据集成系统也应具有以下特点: 智能性:对来自不同数据源的结构化的、半结构化的、或非结构化的 数据进行统一处理、过滤、缩减、抽象、合并和归纳等工作; 开放性:对于异构、分布的数据源,还必须解决信息表示与结构上的 不匹配问题: 哈尔滨工程人学硕士学位论文 主动性:对现有的i n t e r n e t 数据表示、交换和服务机制进行适当规 范,并提供主动服务机制“1 。 从目前的研究来看,数据的集成一般是指对数据源访问的集成,即提供 统一的访问机制,并不包括对不同数据源数据之间的集成,本文扩展了集成 的概念,在访问集成的基础上,进一步支持不同数据源数据之间的简单集成。 总的来看,在构建异构数据集成系统时,主要会面对以下几方面的问题: 异构性:异构性是异构数据集成必须面临的首要问题,其主要表现在 两方面:系统异构,数据源所依赖的应用系统、数据库管理系统乃至操作系 统之间的不同构成了系统异构 模式异构,数据源在存储模式上的不同。一 般的存储模式包括关系模式、对象模式、对象关系模式和文档嵌套模式等几 种,其中关系模式为主流存储模式。需要注意的是,即便是同一类存储模式, 它们的模式结构可能也存在着差异。例如o r a c l e 所采用的数据类型与s q l s e r v e r 所采用的数据类型并不是完全一致的。 完整性:异构数据源数据集成的目的是为应用提供统一的访问支持。 为了满足各种应用处理数据的条件,集成后的数据必须保证完整性,包括数 据完整性和约束完整性两方面。 数据完整性:完整提取数据本身。 约束完整性:约束是指数据与数据之问的关联关系,是唯一表征数据 间逻辑的特征。保证约束的完整性是良好的数据发布和交换的前提,可以方 便数据处理过程,提高效率。 语义冲突:信息资源之间存在着语义上的区别。这些语义上的不同引 起各种矛盾,从简单的名字语义冲突,到复杂的结构语义冲突。语义冲突会 带来数据集成结果的冗余,干扰数据处理、发布和交换。所以如何尽量减少 语义冲突也是数据集成的一个研究热点。 附加约束:集成两个或多个数据源的时候,数据源的数据之浏可能存 在看某种联系。把这种逻辑联系附加到集成结果中的过程就称为附加约束。 集成内容限定:多个数据源之间的数据集成,并不是要将所有的数据 进行集成,那么如何定义要集成的范围,就构成了集成内容的限定问题。m 一 上面列举的异构数据集成所必须面对的几个主要问题,这些问题是相互 联系、相互制约的,不应该简单的孤立对待。 2 哈尔滨上程人学硕士学位论文 总之,需要一种服务,能够提供对领域内相关数据源的透明访问,好像 操作一个数据源一样,把这种服务叫做数据集成服务,把能够集成多个数据 源,提供这种服务的平台叫做数据集成平合“1 ,如图1 1 所示。 图1 1 数据集成平台 数据集成的目的是提供一个访问异构数据源的统一接口,使用户不必考 虑数据模型的异构性、数据抽取、数据合成等问题,用户只需指定他们想要 的数据,而不必描述怎样得到数据。这样就减轻了用户寻找相关数据源、和 每个数据源交互然后合并返回结果的负担。数据集成平台提供了底层数据源 存储数据的统一视图这样用户访问所有数据源就像操作一个数据源一样w 。 1 2 现有的异构数据集成解决方案 最常用的具体的数据集成方式一般有三种:联邦数据库( f e d e r a t i o n d a t a b a s e ) 、数据仓库( d a t aw a r e h o u s e ) 以及中介( m e d i a t i o n ) 。 1 2 1 联邦数据库系统 联邦数据库系统( f e d e r a t i o nd a t a b a s es y s t e m ,f d b s ) 是由参与联 邦的半自治的数据库系统组成,目的是实现数据库系统问部分数据的共享网。 联邦中的每个数据库的操作是独立于其它数据库和联邦的。之所以叫“半自 治”是因为联邦中的所有数据库都添加了彼此访问的接口。 联邦数据库系统分紧密耦合f d b s 和松散耦合f d b s 两种。 哈尔滨工程人学硕士学位论文 紧耦合f d b s 有一个或几个统一的模式,这些模式可通过模式集成技术 半自动主成,也可通过用户手工构造。要解决逻辑上的异构,就需要领域专 家决定数据库模式间的对应关系。模式集成技术不易添加和删除联邦数据库 集成系统中的数据库,所以紧耦合f d b s 通常是静态的,且很难升级。 图1 2 联邦数据库体系结构 松耦合f d b s 没有统一的模式,但它提供了一些查询数据库的统一语言。 这样f d b s 中的数据库更具有自治性,但必须用户解决所有语义上的异构。由 于松耦合f d b s 没有全局模式,所以,每个数据库都要创建自己的“联邦模式”。 f d b s 中实现互操作最常用的方法是将每个数据库模式分别和其它所有 数据库模式进行映射,这样的例子郊国1 2 所示。这样联邦中需要建立n x ( n 一1 ) 个模式映射规则,但当参与联邦的数据库很多( n 值很大) 时,建 立映射规则的任务变得不可行了。所以,联邦数据库集成系统适合于自治数 据库的数量比较小的情况,而且,希望数据库能够保持“独立”,允许用户单 独查询,数据库问能够彼此联合回答查询的情况。对于网络上越来越丰富的 数据源,f d b s 显然不是一个很好的解决方案。 1 2 2m e d i a t e d 系统 m e d i a t e d 系统通过提供所有异构数据源的虚拟视图来集成它们,这里 的数据源可以是数据库、w e b 数据源等等。该系统提供给用户一个全局模式 ( 也叫m e d i a t e d 模式) ,用户提交的查询是针对该模式的,所以用户不必知 哈尔滨工程人学硕+ 学位论文 道数据源的位置、模式及访问方法。 m e d i a t e d 体系结构与紧耦合联邦有如下不同之处“1 : m e d i a t e d 系统可以集成非数据库数据源。 基于中介器的系统中的数据源的查询能力可以是受限制的,数据源可 以不支持s o l 查询。 m e d i a t e d 系统中的数据源是完全自治的,这就意味着很容易从系统 中添加删除数据源。 由于m e d i a t e d 系统中的数据源是自治的,所以对系统中数据源的访 问通常是只读的,而f d b s 支持读写访问。 图l 。3 所示的是典型的m e d i a t e d 系统体系结构该系统的主要部件是中 介器和针对每个数据源的包装器( w r a p p e r ) 。这里中介器的功能是接收针对 全局模式生成的查询,根据数据源描述信息及映射规则将接收的查询分解成 每个数据源的子查询,再根据数据源描述信息优化查询计划,最后将子查询 发送到每个数据源的包装器。包装器将这些子查询翻译成符合每个数据源模 型和模式的查询,并把查询结果返回给中介器。中介器将接收的所有数据源 的结果合并成一个结果返回给用户。 图1 3m e d i a t e d 系统体系结构 5 1 2 3 物化方法 物化方法也就是数据仓库法,该方法需要建立一个存储数据的仓库,由 e t l ( e x t r a c t ,t r a n s f o r m ,a n dl o a d ) 工具定期从数据源过滤数据,然后装 载到数据仓库,供用户查询。与虚拟视图法相对应称这种方法为e a g e r 方法。 数据仓库体系结构如图1 4 所示。 图i 4 数据仓库体系结构 与虚拟视图法相似的是用数据仓库集成异构数据源也需要异构统一的数 据视图,但不同的是e t l 工具过滤得到的数据存储到仓库里而与传统的数 据库不同的是数据仓库中主要存储的是历史和汇总数据,用于决策支持,主 要供分析或执行等人员使用,而且为避免数据仓库与数据源中数据出现不一 致。通常不允许用户对数据仓库进行更新。 1 3 论文的研究内容 本文首先分析了结构化的异构数据库集成时所面临的问题、集成的策略 以及所应用的技术,在此基础上提出了一个基于x m l 的异构数据集成的总体 哈尔滨t 程人学硕士学位论文 解决方案,并结合相关的j a v a 技术实现了该系统的核心应用系统。 第l 章为绪论部分,主要介绍了国内外关于异构数据集成方面的主要研 究内容及成果。 第2 章为基础理论部分,主要介绍了本文所应用的x m l 技术及其应用( 主 要为j a x p 编程) 。 第3 章介绍了异构数据集成的基本概念和理论,及关键技术。 第4 章深入的探讨并提出了基于x m l 的异构数据集成的解决方案。 第5 章在以上解决方案的基础上给出了具体的应用程序的设计,并给出 了核心部分的程序实现。 堕玺鎏:堡盔主鎏主兰垡鲨銮 第2 章可扩展标记语言( x u k ) 及其应用 2 1x m l 简介 提到x m l 就必须提到s g m l 。s g m l 全称是”s t a n d a r dg e n e r a l iz e dm a r k u p l a n g u a g e ”( 通用标志语言标准) 。看名称就知道:它是标志语言的标准,也 就是说所有标志语言都是依照s g m l 制定的,当然包括h t m l 。 s g m l 的覆盖面很广,凡是有一定格式的文件都属于s g m l ,比如报告,乐 谱等等,h t m l 是s g m l 在网络上最常见的文件格式。因此,人们戏称s g m l 是 h t m l 的“妈妈”。而x m l 就是s g m l 的简化版,只不过省略了其中复杂和不常 用的部分。所以x m l 也是h t m l 的“妈妈”,所以有着更加强大的功能。s g m l 十分庞大,既不容易学,又不容易使用,在计算机上实现也十分困难。鉴于 这些因素,w e b 的发明者一欧洲核子物理研究中心的研究人员根据当时( 1 9 8 9 年) 计算机技术的能力,提出了h t m l 语言。h t m l 只使用s g m l 中很小一部分 标记,例如h t m l3 2 定义了7 0 种标记”】。为了便于在计算机上实现,h t m l 规定的标记是固定的,即h t m l 语法是不可扩展的,它不包含d t d 。h t m l 这种 固定的语法使它易学易用,在计算机上开发h t m l 的浏览器也十分容易。_ _ f 是由于h t m l 的简单性,使w e b 技术从计算机界走向全社会,走向千家万户, w e b 的发展如日中天。近年来,随着w e b 的应用越来越广泛和深入,人们渐 渐觉得h t m l 不够用了,h t m l 过于简单的语法严重地阻碍了用它来表现复杂 的形式。尽管h t m l 推出了一个又一个新版本,已经有了脚本、表格、帧等表 达功能,但始终满足不了不断增长的需求。 但是h t l 的缺点日益突出,重表现而轻数据,随着发展变得越来越复 杂,效率低下而且h t m l 的描述能力也不能满足当前的需求,h t m l 对于数据 的搜索几乎不支持。因为h t m l 的标记几乎不含任何数据信息。当前网络的 搜索引擎无法智能地处理h t m l ,例如,如果您要寻找一首叫e a g l e s 乐队的 h o t e lc a l i f o r n i a 的歌曲。您输入了h o t e lc a l i f o r n i a 可能找到的是h o t e l 哈尔滨t 程大学硕士学位论文 的地址列表c a l i f o r n i a 的地方介绍,还可能有一个叫h o t e lc a l i f o r n i a 的 旅馆介绍,最后才是您要我的e a g l e s 乐队的歌h o t e lc a l i f o r n i a 的信息。 但是如果有一个为地名旅馆和歌曲制订的d t d ,用来说明标记的含义,这样 查找名叫h o t e lc a l i f o r n i a 的歌曲就能得到更为精确和有用的结果了。1 一 个好的代理能智能地解释信息并作出响应。如果发送给代理的数据是用x m l 组织的数据,那么代理能更容易地理解数据的含义以及与其已知数据问的联 系。h t m l 的语法相当松散,随着h t m l 越来越复杂使h t m l 代码的出错率很 高,降低了代码的执行效率。x m l 的语法有着严格的规定同时又是可扩展的, 所以x m l 的结构不会变得错综复杂。 另一方面,这几年来计算机技术的发展也十分迅速,已经可以实现比当 初发明创造h t m l 时复杂得多的w e b 浏览器,所以开发一种新的w e b 页面语言 既是必要的,也是可能的”一。 2 2x m l 相对于h t m l 的优点 2 2 1 内容和表现形式分离: 在h t m l 中数据内容和表现形式是混在一起的,这样当改变数据的表现 形式时更新文档的工作量很可观。同时,对于础l 文档雨言,标记是包含信 息的,比如关键字继承关系等,这些信息对于数据的检索描述起着巨大的简 化作用。当只想改变数据的表现形式时只需修改从x m l 文档中分离出的用于 数据表现的样式单就可以了。 2 2 。2 良好的可扩展性: ) 【m l 允许程序员制定自己的标记集满足自己的需要。同样一个行业或某 一特定人群,也可以制定在自己范围内的通用标记集w 。这样x m l 可以轻松 地适应每一个领域而无需对语言本身作大修改,另外要说明的是x m l 的数据 定义也是与数据本身分离独立存在的,这样使x m l 的标记集不致日益扩大。 对于有特殊要求的人,他们可以选用需要的标记集。现在比较典型的例子是 c m l 化学置标语言和 a t h m l 数学置标语言m 。这两种语言都是利用了x m l 的 扩展性这一特点。 9 哈尔滨工程大学硕士学位论文 2 2 3 良好的移植性 x m l 语言可以定义各种数据,像文本图像声音等。这些数据往往有很多 种不同的格式使得数据不能在各系统之间交流,或使用额外的转换软件来实 现跨平台的交流。x m l 的这个特性使得只要交换数据的系统都能处理一种格 式的文件即x m l 文档,就能处理由x m l 标注的各种数掘,从而实现了不同格 式数据的跨平台交换m 。 2 2 4 良好的自描述性 良好的自描述性使得x m l 数据可以被不同的应用程序分析处理,并且x m l 的自描述性可以使一篇x t d l 文档被人理解,通过标记元素之间的关系数据, 要表达的内容就会一清二楚了。标记 t o m 当然是说有个名字是 t o m , 数据是t o m ,数据代表的是一个由标记表述的信息名字。对于一份完 整的x m l 文档而言包括三个部分,数据部分x m l 的核心内容数据部分通常是 与数据库紧密联系的。现在数据在网页中的作用越来越大,这就要求有更好 的处理数据的方法,可仅有数据是不够的。x m l 的处理程序还不能识别这些 数据,所以还需要为这些数据提供标记说明,将信息通过标记和数据传给处 理程序,使数据得以正确使用】。标记说明这部分将数据的信息通过一定的 格式和说明传递给x m l 的处理程序,对于数据本身标记没有任何作用标记, 只是体现数据的特性和数据间的关系。说明标记的常用方法是使用d t d 文档 类型定义。近来出现了另一种方式s c h e m as c h e m a 具有超过d t d 的优势可以 预计s c h e m a 将取代d t d 成为新的x m l 数据类型定义方式。 2 3x m l 的应用领域 2 3 1 异构数据源之间的信息传递 当今的计算机世界中,不同企业、不同部门中存在着许多不同的系统。 操作系统有n t 、u n i x ,数据库系统有s q ls e r v e r 、o r a c l e 等等,要想在这 些不同的平台、不同的数据库软件之间传输信息,不得不使用一些特殊的软 件,非常之不便。而不同的显示界面,从工作站、个人微机、到手机,使这 1 0 iij:誊:il:;i:圭i奎垒兰一 些信息的个性化显示也变得很困难。这些数据源都有各自不同的复杂格式。 但客户与这些数据源之间只通过一种标准语言进行交互,那就是x m l 。由于 x m l 的自定义性及可扩展性,它足以表达各种类型的数据。x m l 能够使不同来 源的结构化的数据很容易的结合在一起。软件代理商可以在中间层的服务器 上对从后端数据库和其他应用处来的数据进行集成。然后,数据就能被发送 到客户或其他服务器做进一步的集合、处理和分发。客户收到数据后可以进 行处理,也可咀在不同数据源间进行传递。 总之,在这类应用中,x m l 解决了数据的统一接口问题。但是,与其它 的数据传递标准不同的是,y - , m l 并没有定义数据文件中数据出现的具体规范, 而是在数据中附加标记来表达数据的逻辑结构和含义。这使x m l 成为一种程 序能自动理解的规范。 幺3 2 将运算负荷分布在客户端 当需要把从网络服务器下载的数据在客户端处理时,客户可根据自己的 需求而选择不同的应用程序以处理数据,而服务器只须向不同的客户端发出 同个x m l 文件即可。在传统的”客户服务器”工作方式中,客户向服务器发 出不同的请求,服务器分别予以响应,这不仅加重服务器本身的负荷,而且 还须事先调查各种不同的用户需求以做出相应不同的程序。如果用户的需求 繁杂而多变,则仍然将所有业务逻辑集中在服务器是不合适的,因为服务器 端编程的人员可能来不及满足众多的应用需求,也来不及跟上需求的变化, 最终导致双方都很被动。使用x m l 则可以把数据处理的任务交给了客户,客 户按照自己的需要对数据做任意处理,而服务器所作的只是尽可能完善、准 确地将数据封装成x y , l 文档,然后传送给客户端即可。这样客户端和服务器就 可以各取所需、各司其职了。x m l 的自解释性使客户端在收到数据的同时也 理解数摆的逻辑结构与含义,从而使广泛、通用的分布式计算成为可能m ,。 2 3 3 数据的多样显示 当必须用程序动态地生成w e b 文档内容时,分离文档内容和文档结构显 得尤为重要。这种分离允许w e b 组成员( w e b 页面编程人员、业务逻辑程序 员和图形设计者) 并行工作,并只是有限地影响其它人。在x m l 中,显示样 哈尔滨工程大学硕士学位论文 式从数据信息中抽取出来,放在样式单文件中。可以把同一个x m l 文档以不 同的面貌展现给不同的客户,或不同的设备终端,如p c 、手机、p d a 等。这 样,如果需要改动信息的表现方式,无须改动信息本身,只要改动样式单文 件就够了,你无须再去修改那几十、几百个数据信息文件,因为它们和同一 个样式单文件相关联,只要改动这个样式单文件就足够了。 这一应用将会为网络用户界面个性化、风格化的发展铺平道路。例如, 可以将一个包括零件价格、说明和订单号码的汽车零件目录作为视图显示给 购物者看。显示给汽车修理工人看的目录视图可能包括对购物者可用的信息 和用于显示安装零件的位置图解。而显示给制造商看的视图可能包括有关子 部件和材料的信息。 2 3 4 用于情报供货商对个性化信息的需要 有些客户取得数据并不是为了直接使用而是为了根据需要组织自己的数 掘库”。比方说,教育部建立一个庞大的题库,考试时将题库中的题目取出 若干组成试卷,再将试卷封装进x m l 文件,接下来便是最精彩的部分,在各 个学校让其通过一个过滤器,滤掉所有的答案,再发送到各个考生面前,未 经过滤的内容则可直接送到老师手中,当然考试过后还可以再传送一份答案 汇编。此外,x m l 文件中还可以包含进诸如难度系数、往年错误率等其他相 关信息,这样只需几个小程序,同一个x m l 文件便可变成多个文件传送到不 问的用户手中n ”。 综合以上四种不同类型的应用,具体说来便是数据制作者并不考虑日后 这些数据具体会有哪些用途,只是尽量全面地考虑今后有可能会被用到的信 息,并将其完整、规范地制作成x m l 文件。服务商则不会被拘禁于特定的脚 本语言、制作工具及传输引擎的囚笼内,而是提供一种标准化、可独立销售、 有级别操作的领域,在那里不同的制作及传输工具将各显神通,一决雌雄, 从而极大限度地满足客户的需求,成为”最信得过”的服务商。 哈尔滨: 程人学硕士学位论文 2 4j a v a 与x m l 技术的结合 2 4 1 概述 j a v a 是一种优秀的平台无关性的面向对象的语言,甚至已经成为了w e b 上的标准编程语言m - 。而x m l 能创建不依赖干平台、语言或限制性格式化协 定的开放数据,己被广泛采用,成为下一代的w e b 标准数据交换语言。j a v a 语言开发i n t e r n e t 分布式应用程序的潜力被越来越多的人看好,e j b 体系结 构也日渐成熟。利用j a v a ,人们可以很迅速的开发出可移植的、弹性好的、 易于管理的分布式应用程序。同时j a v a 语言一直都被认为是最适合进行x m l 编程的语言之一。与平台无关的语言j a v a 加上与平台无关的数据x m l ,将能 够完成最为复杂且弹性最好的分布式应用。 x m l 技术被期望给面向网络的应用带来革命性的影响,特别是在数据交 换领域。j a v a 与x m l 一起使得在诸如电子商务和企业应用集成这样领域的新 一代w e b 应用成为可能。目前,几乎所有t n t e r n e t 技术的主要参与者都承诺 支持x 5 f 【l 技术。除了s u n 以外,如i b m ,o r a c l e ,n o v e l l 等公司正在开发将 x m l 和j a v a 一起使用的产品和技术。j o nb o s a k , w 3 cx m l 协调组的主席, 通常被认为是x m l 之父。b o s a k 说:“x m l 和j a v a 是厂商独立程序的阴和阳。 把它们集成在一起,你能获得完整的,平台独立的,基于w e b 的计算环境。 p a t r i c i as e y b o t dg r o u p 的a n n et h o m a s 解释说:“把j a v a 和x m l 技术组合在一起产生了轻便的聪明的数据。x m l 提供了普遍适用的格式 化的数据格式,同时j a v a 技术提供了普遍适用的代码。因为用j a v a 语言写 的代码可以嵌入用x 地语言写的文档中,可以刨建包含自己的数据处理程序 的数据结构。这是伟大的组合。” 许多网络开发者彳导出结论:x m l 和j a v a 是完美的一对,因为彼此十分相 辅相成。x m l 有助于独立平台、易提取信息的文档和数据。j a v a 有助于独立 平台、易于处理的面向对象的应用软件解决方案。可以得到下面这个公式: j a v a + x m l = 可移植的数据和行为“。 x m l 当它在1 9 9 6 年1 1 月首次由w 哪小组( w 3 c ) 提出时就是一个能够 被很好接受的规范。现在,它与j a v a 从本质上的结合一即把j a v a 程序中的 哈尔滨j 一程大学硕士学位论文 与x m l 相关的代码部分和对j a v a 语义( 动作) 编码的部分转换成 ( m l 的标记, 承诺能够向企业或更高层提供更简单和更具创造力的应用计算。l a r r yc a b l e 和m a r kr e i n h o l d 是s u n 公司的两名老资格的工程师,他们在最近召开的 j a v ao n e 开发者大会的“j a v a 平台上的x m l ”技术会议部分发言,根据他们 的发言,关注这种技术联姻的主要原因是基于x m l 的语法提供了一种灵活的、 标准的、健壮的j a v a 编程方案,同时,j a v a 也将一种普遍的语义集合应用 于x m l 数据。 2 4 2x m l 对j a v a 的增强 x m l 为j a v a 的语义( 行为) 提供了一种普遍的语法,简单的说就是,这 意味着一个开发者可以为不同的数据类型创建描述,使得这些数据在j a v a 的程序代码中表现出不同的行为,并且以后可以重复使用和修改这些描述m ,。 既然j a v a 和x m l 都是可移植的标准,这两种技术结合的结果也是可移植的, 可以重用数据和移植行为。单独使用x m l 或j a v a 所能获得的所有的潜力还没 有被完全掌握,将它们结合就走进了一个巨大的新的国度。现在,将x m l 应 用于j a v a 的两个主要的应用是面向表示的出版业和企业中面向消息的中间 件技术。特别是,x m l 可以和j a v a 结合产生诸如复杂的w e b 文档、动态出版、 电子商务、企业应用集成和结构信息管理与检索等应用。 2 。5j a x p 编程 2 5 1 什么是j a x p s u n 的用于x m l 处理的j a v aa p i ( j a x p ) 1 1 版本中包含了对x s l t 转换 的支持,值得注意的是,j a x p 的早期版本忽略了这一内容。解析x m l 并转换 x s l t 不是j a x p 的主要目的,而关键的目的是为了各种广泛的x m l 解析器和 x s l t 处理器提供一种标准的j a v a 接口m ,。尽管j a x p 也包括了x m l 解析器和 x s l t 处理器的参考标准,但是其主要好处是为了j a v a 的开发人员提供了一 种选择,即可以接受的工具。由于j a x p ,厂商的限制不再是个问题。 在讲解代码之前,介绍一些基本概念很重要。严格地说,j a x p 是a p i , 但是将其称为抽象层更准确。它不提供处理x m l 的新方式,不补充s a g 或 1 4 哈尔滨丁程大学硕十学位论文 - - l - _ i l - _ _ _ l l _ _ _ _ - _ _ _ _ _ _ _ l l - _ l _ l - l _ _ _ l _ i _ i _ _ - - - o _ 一i o d o m ,也不向j a v a 和x m l 处理提供新功能。它只是使通过d 晰和s a y , 处 理一些困难任务更容易。如果在使用d o m 和s a xa p i 时遇到特定于供应商 的任务,它还使通过独立于供应商的方式处理这些任务成为可能。 j a x p 不提供语法分析功能。没有s a x 、d o m 或另一个x i v i l 语法分析a p i , 就无法分析x m l 语法。有很多人曾将d o m 、s a x 或j d o m 与j a x p 进行对比。 但进行这些对比是不可能的,因为前三个a p i 与j a x p 的目的完全不同。s a x 、 d o m 和j d o m 都分析x m l 语法。而j a x p 却提供到达这些语法分析器和结果 的方式。它自身不提供分析文档语法的新方法。 2 5 2s a x 方法 s a x ( s i m p l ea p if o rx m l ) 是用于处理x m l 的事件驱动方法。它基本 由许多回调函数组成。例如,每当s a x 语法分析器遇到元素的开始标记时就 调用s t a r t e l e m e n t0 。对于字符串,将调用c h a r a c t e r s ( ) 回调函数,然后 在元素结束标记处调用e n d e l e m e n t0 。还有很多回调函数用于文档处理、错 误和其它词汇结构。现在知道这是怎么回事了。s a x 程序员实现一个定义这 些回调函数的s a x 接口。s a x 还实现一个名为h a n d l e r b a s e 的类,该类实 现所有这些回调函数,并提供所有这些回调方法的缺省空实现( 提到这一点 是因为它在后面讲到的d o m 中很重要) 。s a x 开发人员只需扩展这个类,然 后实现需要插入特定逻辑的方法。所以,s a x 的关键在于为这些不同的回调 函数提供代码,然后允许语法分析器在适当的时候触发这些回调函数。 因此,典型的s a x 过程如下: 用特定供应商的语法分析器实现创建一个s a x p a r s e r 实例 注册回调实现 例如,通过使用扩展h a n d l e r b a s e 的类) 开始进行语法分析,然后在触发回调实现时等待 j a x p 的s a x 组件提供执行所有这些步骤的简单方式。如果没有j a x p , s a x 语法分析器要直接从供应商类( 如 o r g a p a c h e x e r c e s p a r s e r s s a x p a r s e r ) 进行实例化,或者必须使用名为 p a r s e r f a c t o r y 的帮助类。第一个方法的问题很明显:不独立于供应商。第 二个方法的问题在于类厂需要一个自变量,即要使用的语法分析器类的字符 串名称( 还是那个a p a c h e 类o r g a p a c h e x e r c e s p a r s e r s s a x p a r s e r ) 。可 哈尔滨工程大学硕士学位论文 以通过将不同语法分析器作为s t r i n g 传递来更改语法分析器。使用这种方 法不必更改任何i m p o r t 语句,但是还是要重新编译类。这显然不是最佳解 决方案。如果能够不重新编译类而更改语法分析器,可能会简单得多。 j a x p 提供了更好的替代方法:它允许将语法分析器作为j a v a 系统属性 来提供。当然,当从s u nf 载版本时,将得到使用s u n 语法分析器的j a x p 实现。可以从a p a c h ex m lw e b 站点下载在a p a c h ex e r c e s 上构建其实现的 相同j a x p 接口。因此( 无论哪一种情况) ,更改正在使用的语法分析器需要 更改类路径设置,即从一种语法分析器实现更改到另一个,但是不要求重新 编译代码。 2 5 3 处理d o m 在j a x p 中使用d o m 的过程与s a x 几乎相同,所要做的全部只是更改 两个类名和一个返回类型,这样就差不多了。 d o m 和s a x 的主要差异是它们的a p i 结构m ,。s a x 包含个基于事件 的回调函数集,而d o m 有一个内存中的树状结构。换句话说,在s a x 中, 从不需要操作数据结构( 除非开发人员手工创建) 。因此,s a x 不提供修改x m l 文档的功能。而d o m 正好提供这种类型的功能。o r g w 3 c d o m d o c u m e n t 类 表示x m l 文档,它由表示元素、属性和其它x m l 结构的d o m 节点组成。所 以,j a x p 无需触发s a x 回调,它只负责从语法分析返回一个d o md o c u m e n t 对象。 2 6 本章小结 x m li sn o t h i n g ,b u ti ta f f e c t se v e r y t h i n gf l g ) x m l 无疑在不久的将 来成为数据存储和传输主要手段。x m l 相对于h t m l 具有不可比拟的优势,主 要体现在内容和表现形式相分离,具有良好的可扩展性,良好的移植性和自 描述性等四个方面。同时,x m l 在异构数据传输,分布式计算,数据的多样 显示及个性化信息方面具有广泛的应用。 j a v a 的先天的平台无关性与x m l 技术相结合,使x m l 技术变得更加完善。 堕玺鎏三堡盔兰鎏圭兰2 鲨兰

温馨提示

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

评论

0/150

提交评论