已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 随着互联网技术的发展和现代组织信息化程度的提高,企业和组织之间的业 务联系日益紧密,对业务数据互操作的需求急剧增加,因此企业应用往往需要从 大量分布、自治、异构的数据源中提取数据。如何快捷有效地为上层应用提供对 业务数据的访问,成为现阶段企业数据集成领域研究的重要问题。 结合面向服务的体系结构( s o a ) 的设计思想,给出一种基于数据服务的数 据集成平台设计方案。该平台由多数据源查询引擎、数据服务管理平台和数据服 务开发工具构成,采用x m l 作为公共数据模型,利用数据服务定义的x q u e r y 脚本配置查询引擎来实现数据集成功能。平台各部分由数据服务联系起来。数据 服务是平台中自包含、可复用的功能模块,它屏蔽对底层异构数据源的访问细节, 而为企业应用提供访问业务数据的虚拟视图。 + 在分析数据服务内容及定义其文件格式的基础上,完成数据服务开发工具 的设计和实现。数据服务开发工具分为数据源映射、目标格式定义、查询编辑、 静态检测和调试等模块,为数据服务的开发者提供元数据集成、目标格式定制、 可视化的数据映射、类型检测、目标模式生成、调试执行等一系列支持。该工具 作为e c l i p s e 插件项目开发,使用e m f 对数据服务建模,并利用g e f 实现模型 的可视化编辑。 最后,以应用实例说明该工具能够简化数据服务的构建,有助于数据集成方 案的快速开发和实施。 关键词:数据集成s o a 数据服务x q u e r y 类型检测 a b s t r a c t w 硒t h er a p i dd e v e l o p m e n to ft h ei i l t e m e tt e c h n o l o g ya n dt h es p r e a d i n gu s eo f i n f o r m a t i o ns y s t e m si nm o d e mo r g a n i z a t i o n s ,b u s i n e s si n t e r a c t i o na m o n ge n t e r p r i s e s a n do r g a n i z a t i o n sb e c o m e sm o r ea n dm o r ec o m m o l la n df r e q u e n t t h ei n c r e a s i n g d e m a n d so fb u s i n e s sd a t ai n t e r o p e r a t i o na r er e c o g n i z e da sar e s u l t b u s i n e s s a p p l i c a t i o n su s u a l l y e x t r a c td a t af r o ma na m o u n to fd i s t r i b u t e d ,a u t o n o m o u s , h e t e r o g e n e o u sd a t as o u r c e s i ti s a l li m p o r t a n tp r o b l e mi nt h er e s e a r c ha r e ao f e n t e r p r i s ed a t ai n t e g r a t i o nc o m m u n i t y t op r o v i d ee f r e c t i v ea n de f f i c i e n td a t aa c c e s st o h i g hl e v e la p p l i c a t i o n s i n s p i r e db yt h ep r i n c i p l e so fs e r v i c eo r i e n t e da r c h i t e c t u r e ( s o a ) ,t h i sp a p e r p r e s e n t st h ed e s i g no fa d a t as e r v i c eb a s e di n t e g r a t i o np l a t f o r m ,w h i c hi sc o m p o s e do f am u l t id a t as o u f c eq u e r ye n g i n e ,ad a t as e r v i c em a n a g e m e n tp l a t f o r ma n dt h ed a t a s e r v i c ed e v e l o p m e n tt 0 0 1 x m li sa d o p t e dt oa c ta st h ec o m m o nd a t af o r m a tw i t h i n t h ep l a t f o r m ,a n dx q u e r ys c r i p t sd e f i n e di nd a t as e r v i c e sa r eu s e dt oc o n f i g u r et h e g e n e r a lp u r p o s e dq u e r ye n g i n e t h ec o m p o n e n t so ft h ep l a t f o r ma l ec o r r e l a t e db yt h e c o n c e p to fd a t as e r v i c e ,w h i c hi sas e l f - c o n t a i n e d ,m u m b l ef u n c t i o nm o d u l ei nt h e p l a t f o r m d a t as e r v i c e sh i d et h ed e t a i li n f o r m a t i o nf o ra c c e s s i n gh e t e r o g e n e o u sd a t a s o u r c e s ,a n dp r o v i d ev i r t u a lv i e w so ft h eu n d e r l y i n gb u s i n e s sd a t a o nt h eb a s i so fa n a l y z i n gt h es t r u c t u r ea n df i l ef o r m a to fad a t as e r v i c e ,t h ep a p e r d e s c r i b e so u rd e s i g na n dr e a l i z a t i o no ft h ed a t as e r v i c ed e v e l o p m e n tt 0 0 1 t h et o o li s c o m p o s e do fs e v e r a lm o d u l e si n c l u d i n gd a t as o u r c em a p p i n g ,t a r g e tf o r m a t t i n g ,q u e r y e d i t i n g ,s t a t i cc h e c k i n ga n dd e b u g i tp r o v i d ed a t as e r v i c ed e v e l o p e r sw i t has e r i e so f s u p p o r t ss u c h 觞m e t a d a t ai n t e g r a t i n g ,t a r g e tf o r m a tc u s t o m i z i n g ,v i s u a l i z e dd a t a m a p p i n g ,t y p ec h e c k i n g ,t a r g e ts c h e m ag e n e r a t i n ga n dd e b u g g i n g t h et o o l i s d e v e l o p e d a se c l i p s ep l u g i np r o j e c t s e m fi su s e df o rd a t as e r v i c em o d e l i n ga n dg e f f o rv i s u a l i z e dm o d e le d i t i n g a u s ec a s ei sg i v e nt od e m o n s t r a t et h a tt h et o o lc a nf a c i l i t a t et h ed e s i g no fd a t a s e r v i c e sa n dt h er a p i dd e v e l o p m e n to fd a t ai n t e g r a t i o np r o g r a m so n0 1 1 1 p l a t f o r m k e yw o r d s :d a t a i n t e g r a t i o n ,s o a ,d a t as e r v i c e ,x q u e r y , t y p ec h e c k i n g 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得苤注盘堂或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名: 替醐:叩n 月日 学位论文版权使用授权书 本学位论文作者完全了解墨鲞盘堂有关保留、使用学位论文的规定。 特授权墨鲞盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘: ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 莠乒 签字吼印年月f 日 导师签名: 辩醐。哆年枷 第一章绪论 1 1 数据集成的应用背景 第一章绪论 近年来,随着企业、服务机构、政府部门等组织信息化程度的提高,组织间 和组织内部各部门间业务操作的复杂程度不断增加,对业务数据的访问也提出更 高要求。业务数据是企业中各种业务应用的基础,如何有效地存储数据,快速及 时地获取数据,为企业应用提供便利的数据访问,成为企业应用开发和应用集成 的关键性问题。 事实上,在信息化过程中,组织或部门根据各自不同的职能、管理关系、业 务需求等在不同阶段独立构建了自己的应用系统,这些企业应用往往采用了异构 的硬件和软件平台、数据存储管理和数据访问技术,通常有不同的专用客户端、 操作对象和处理方法。由于这些应用建立在相互分离的数据源基础上,面对组织 和部门间业务的复杂化和协同性工作的增加,这些系统间的数据流动明显缺乏互 操作性要求,无法有效地实现信息共享和信息交互,形成了所谓的“信息孤岛 现象u j 。而且随着组织信息化过程的推进,这种现象日益严重。 与此同时,随着计算机网络技术的不断进步,许多基于互联网的新型经营模 式逐渐兴起,企业间的业务联系日益紧密,通过互联网进行业务数据交换和访问 的需求急剧增加。在此背景下,以x m l 为代表的新兴数据交换格式被业界广泛 接受,而w e b 服务作为互联网上标准的互操作性接口也受到普遍支持,进而产 生了大量通过w e b 服务或其它接口发布的以x m l 编码的业务数据,给企业的数 据建模、访问和操纵问题增加了新的维度。 现阶段在企业和组织中普遍存在多种异构的数据源类型,一类是传统的关系 型数据库、文件系统等,另一类是新型的x m l 、h t m l 等半结构化数据,以及 声音、图片等非结构的多媒体数据。此外,诸如企业遗留系统、应用程序( 如 c r m 、e r p 等) 、w e b 服务、消息服务等也可以看作是数据源的形式。如何快捷 有效地访问分布在异构数据源中的业务数据( 企业数据集成,e n t e r p r i s ed a t a i n t e g r a t i o n ,e d i ) ,在异构的数据环境下为企业应用提供便捷可用的数据服务, 成为迫切需要解决的问题而受到广泛关注。 第一章绪论 1 2 数据集成的概念 数据集成是把不同来源和不同格式的数据在逻辑上或物理上有机地集中,从 而为企业提供全面的数据共享【2 j 。对数据集成领域研究的关注,一方面是由于互 联网和w e b 等分布式计算基础架构的飞速发展使得对大量独立开发和管理的数 据源的访问成为可能,另一方面也是因为随着组织信息化程度的提高,业务应用 趋向复杂化,对信息、知识等数据的创建、分析、重用和共享的要求越来越高。 数据集成实质上是为不同的信息系统和业务应用提供数据的互操作支持 ( i n t e r o p e r a b i l i t y ) ,从而实现数据在这些系统间的重用和共享。 一般来说,数据集成所面对的数据源有以下特征p 】: 夺自治性( a u t o n o m y ) :数据源由于处在不同组织实体的管理和维护下,往往 具有很强的自治性,给数据集成系统的健壮性和快速适应变化的能力提出了 挑战。数据源所体现的自治性包括:设计自治性( d e s i g na u t o n o m y ) 、通讯 自治性( c o m m u n i c a t i o n a u t o n o m y ) 、联系自治性( a s s o c i a t i o n a u t o n o m y ) 【4 】。 夺分布性( d i s t r i b u t i o n ) :数据源的分布范围随着信息技术的发展而不断扩大。 数据源间的访问经历了从点对点或局域网内部互联,到企业或组织间的互 联,再到全球化信息访问的发展过程。对分布性数据源的访问给数据集成领 域的研究提出了许多问题,例如对大量数据源特别是包含虚拟数据的数据源 进行访问、与采用多种不同通讯方式或带宽的数据源通讯、对不同性能的数 据源访问的优化等。 夺异构性( h e t e r o g e n e i t y ) :数据源的异构性可分为三个层次1 5 。 ( 1 ) 平台的异构性数据源的平台异构性是指数据源所在软硬件平台的差异 性,这是由于信息系统运行在异构硬件平台( 指令集、编码等) 、软件系统 ( 操作系统、文件系统、命名、事务控制等) 上,采用的不同的通信协议机 制。数据集成领域的研究从一开始就关注数据源平台异构性问题的解决。 ( 2 ) 系统的异构性随着以d b m s 为代表的数据管理技术的发展,不同信息 系统之间的异构性问题成为研究的关注点。系统异构性是指不同信息系统 ( 例如数据库管理系统d b m s 、数字多媒体库管理系统d m r m s ) 之间数据 模型、系统能力、并发控制和错误恢复等方面的差别。 ( 3 ) 数据的异构性随着信息技术的发展,数据本身的异构性( d a t ai n t r i n s i c h e t e r o g e n e i t y ) 逐步成为数据集成研究的重点。数据本身的异构性包括数据 在语法( s y n t a x ) 、模式( s c h e m a t i c ) 、语义( s e m a n t i c ) 方面的异构性。语法 异构性是指数据格式( f o r m a t ) 即数据的表现形式的差异。例如以网络数据 交换格式x m l 为代表的新兴数据类型( 半结构化、非结构化数据等) 和传 第一章绪论 统关系型数据之间存在数据格式上的差别。模式异构性是指数据在描述事物 时采用不同的数据结构( s t r u c t u r e ) 和数据类型( t y p e ) ,因此在模式定义上 产生差异。语义异构性则比上面两种复杂,是指数据所传达的意义以及使用 数据的环境不一致。解决语义异构往往需要对数据的内容作分析处理。随着 人们对数据所表示的知识、信息本身的关注,数据的语义异构性问题也日益 突出。 数据集成的核心任务是将这些相互关联的自治的分布式异构数据源集成到 一起使用户能够以透明的方式访问这些数据源【6 】。集成是指维护数据源整体上的 数据一致性,为用户提供统一的数据源访问接口,提高数据访问的共享利用的效 率;透明的访问方式是指用户无需关心所需数据所在数据源的位置以及如何访问 数据源,只需集中关注对数据的访问和操作【7 】。数据集成为用户提供了一个数据 的统一视图,对于诸如企业门户、报表生成等企业应用提供便利的数据访问。 1 3 数据集成的历史 数据集成领域的研究开始于上世纪七十年代中期,至今已有二十多年的历 史,其研究对象的范围和采用的方法都在持续进化中,其作用和影响也在不断扩 大。下面简单介绍一下数据集成发展的历史,文献 5 将数据集成领域的研究历 史分为三个阶段,下面从各阶段数据集成所关注的数据源的异构性、自治性和分 布性的范围变迁来介绍数据集成的发展: 口第一阶段从七十年代中期到八十年代中期:这一阶段以数据库系统的关 系型数据的集成为主要研究对象,关注于解决平台和系统的异构性问题。 其范围局限于企业或组织内为数不多的数据库之间的数据互操作。在此 期间产生了以多数据库系统( m u l t i d a t a b a s e ) 嘲、联邦数据库( f d b s ) p j 为代表的数据库之间的数据集成技术。这个时期使用数据集成技术的 人往往是数据库管理人员和高级用户,以及编制访问数据库程序的开发 人员,这些人员往往对企业和组织内的数据源有完全的控制权,甚至他 们自身本来就是数据源的设计和开发者。 口第二阶段从八十年代中期到九十年代中期:这一阶段数据集成的主要研 究对象从关系型数据扩展到半结构化或非结构化的数据,关注点主要集 中在对多种数据格式和模式的语法和模式异构的解决上。这个时期数据 集成的范围扩大到数十个数据源的连接上,在数据格式上也支持众多特 性不同的数据。在这一时期,在面向对象的编程模式发展推动下,提出 了所谓中介系统【1 0 】的数据集成体系结构,灵活地适应了多种特性的数据 第一章绪论 源地集成问题。在这个阶段实施数据集成的人员通常是那些开发中介平 台和数据源包装器的软件开发者,他们往往不具备对数据源的控制权, 而是针对各数据源的特性实现对应的包装器( w r a p p e r ) ,并由数据集成 系统的中介层( m e d i a t o r ) 控制和协调这些包装器。 口第三阶段九十年代中期以后:在这一时期由于网络技术的快速发展,通 过网络可以访问的数据源的种类和数目都较前两个阶段有极大飞跃,企 业间乃至全球范围内的数据交互成为可能。同时有关数据集成的研究越 来越关注于数据所表示的知识、信息等语义的异构性,尤其和具体领域 相关的数据,数据集成的实现不能仅仅由软件开发人员来完成,而是更 多地依赖领域专家的参与。在这一时期所采用的技术也比以前更为丰富, 例如i n t e m e t w e b 技术、j a v a 分布式对象、基于组件开发方法、中间件 技术、w e b 服务f l l 】、本体【1 2 】甚至多a g e n t 系统1 1 3 都被采用。但在多数据 源集成领域至今没有成熟的模式。 从上述数据集成发展过程可以看到,数据集成系统所要面对的数据源的分布 范围越来越广,数量和所提供数据的种类越来越多,从局限于企业内少量的数据 库之间的集成到分布于互联网上的任意格式的数据源之间的互操作:各数据源的 自治性越来越强,因此数据集成系统的实现不能以对数据源的控制为前提,反之 要求设计良好的数据集成系统要适应这些独立管理的数据源的变化;系统对数据 源异构性的关注点从平台和系统的异构性转移为对数据本身的异构性。另外,由 于对数据语义异构问题的关注,参与数据集成过程的人的构成从单纯专业的数据 管理员和软件开发者到有越来越多的非专业的领域专家加入。 1 4 现阶段的解决方案 对于一个具体的数据集成解决方案,可以根据集成操作的实现所处信息系统 体系结构的抽象层次【1 4 】来对其进行把握和分类,文献【1 5 】给出了数据集成可能存 在的六层抽象,如图1 1 所示: 手工集成:不提供任何集成支持,用户直接和相关的信息系统交互,手 工集成所选择的数据,因此用户需要处理不同的用户接口和查询语言, 用户必须对数据源的位置、数据的逻辑格式、数据的语义等信息有详细 的认识。 公共用户接口:这个层次为用户提供统一外观的接口,但是来自相关系 统的数据仍然被分别展示,需要用户自己完成对它们的集成,例如传统 的搜索引擎。 第一章绪论 暴吴 童匿亟+ 暴吴一 厂i 忑 数据服务的安全策略和权限控制对数据服务所发布的数据实施安全策略和 访问控制。采取管理平台的全局安全策略和数据服务的局部安全策略相结合 的方式,对数据服务的访问、所发布的数据加以限制和保护。 数据服务的应用接口管理平台提供应用程序编程接口( a p i ) ,使数据集成 平台能够以组件形式集成到企业应用中。在此基础上,管理平台可以在数据 服务注册时自动生成对应的w e b 服务接口描述,为数据服务提供w e b 服务 形式的接口,使所发布的集成数据可以在多个企业应用之间共享。 2 2 4 数据服务开发工具 数据服务开发工具为使用数据集成平台实现数据集成的开发者提供支持,使 他们在进行数据集成实施时能够专注于数据之间的映射关系,而无需考虑对数据 源的访问及配置文件的格式等问题。另一方面,该工具提供对所开发数据服务的 错误检测和预处理,产生数据服务的运行时信息。开发工具提供数据服务的集成 开发环境,支持元数据集成、查询编辑、静态检测、测试运行和发布等任务。数 据服务开发工具的设计和实现是本文工作的主要内容。 数据服务开发工具同各种数据源交互,获取数据源的元数据信息展示给用 户,用户可以定义查询的目标格式以及数据源到目标格式的数据映射,开发工具 自动生成查询脚本和数据服务的目标模式。另外,如需要在平台中已有数据服务 之上定义新的数据服务,则开发工具同目标平台实例的控制接口交互,获得平台 中数据服务的信息。 第二章基于数据服务的数据集成平台 2 3 数据服务 数据服务是上述数据集成平台的核心概念,本节详细介绍数据服务的概念、 内容及其在平台中的作用。 2 3 1 数据服务的概念 数据服务是在 2 5 1 中作为面向服务的体系结构( s e r v i c eo r i e n t e da r c h i t c c t u r e , s o a ) 在数据集成领域的应用提出的概念。如上文所述,数据服务层为上层应用 提供统一的数据编目,以简化数据的访问和管理。在以s o a 为架构的数据服务层 设计中,数据根据其语义和应用程序的需要被逻辑地分段,每一段成为可被上层 应用通过数据服务层所提供的标准a p i 访问的功能模块即数据服务。 目前w e b 服务是使用最广泛的s o a 实现技术。w e b 服务被定义为一种可在 分布式异构环境中发布、定位和使用的自包含、自描述、松散耦合的功能模块, 通过一系列开放标准( h t t p ,s o a p ,w s d l ,u d d i ) 支持机器与机器之间的互 操作,使得快速低代价地组合现有服务而得到有附加值的组合服务成为可售g t 2 6 1 。 类似的,数据服务可以认为是分布式异构数据环境中定义的自包含、自描述 的松散耦合的数据模块,由一系列标准( x m l 、x m ls c h e m a 、x q u e r y ) 支持它 们之间的互操作,并且可以通过复用现有数据服务定义新的数据服务。同时也需 要注意到数据服务被局限于提供服务的平台环境中,但是可以将数据服务以w e b 服务形式提供给应用程序,从而解决数据服务的发布问题。 2 3 2 数据服务的内容 如上所述,数据服务应该是自包含、自描述的模块,为完成对一个数据查询 功能模块的描述,并以此完成对查询引擎的配置,数据服务应该包含下列信息: 数据源的元数据t 提供数据源中的数据模式或者获取这些信息的方式; 数据源的连接配置:数据服务屏蔽对底层数据源的访问细节,访问数据源的 信息都被封装在数据源的连接配置中,包括数据源的类型、位置、数据格式、 数据转换方式等: 数据服务的查询脚本:查询脚本定义了从数据源的数据模式到数据服务的目 标模式之间的映射关系,用来配置查询引擎完成数据服务定义的查询功能; 数据服务间的依赖关系:由于可以通过复用已有的数据服务来定义新的数据 服务,因此需要记录数据服务之间的依赖关系,为平台提供管理信息; 数据服务的元数据:平台内部的数据服务本身可以作为数据源而被其他数据 服务使用,因此数据服务也需要提供其自身的元数据描述。另外,在发布数 第二章基于数据服务的数据集成平台 据服务时也需获取其元数据信息; 安全策略和权限控制:数据服务可以定义自己的安全策略和权限,这些策略 和数据服务管理平台定义的全局策略共同决定对数据服务的访问和所发布 数据的保护和限制。 2 3 3 数据服务的作用 数据服务在平台中的作用主要有: ( 1 ) 对于用户而言,数据服务屏蔽了数据访问的细节,为上层应用提供虚拟 的数据视图。数据服务中包含了访问相关数据源的连接配置和数据源的元数据信 息、查询脚本和自身的元数据,可以通过配置查询引擎自动完成对数据源的访问 以及数据的转换与集成。用户可以通过平台提供的统一接口实现对集成数据的访 问,简化了应用程序的开发。 ( 2 ) 数据服务是联系平台中各模块的纽带。如图2 2 所示,数据服务管理平 台、多数据源查询引擎和数据服务开发工具通过数据服务联系起来。数据服务开 发工具实现对数据服务的设计,数据服务管理平台提供对数据服务的管理,而多 数据源查询引擎则通过数据服务的配置完成特定的查询任务。在实现数据集成平 台时,将数据服务配置文件的格式确定后,各模块的开发基本可以独立进行。 图2 - 2 数据服务和各模块的关系 ( 3 ) 数据服务提供对数据集成的复用,支持数据的有效发布。 如上所述,数据集成平台将数据服务作为一种特殊数据源,支持由已有数 据服务定义新的数据服务,实现在平台内复用以往数据集成实施所开发的数据服 务。另外,数据服务的可复用性使我们能够区分物理数据服务( p h y s i c a ld a t a s e r v i c e ) 和逻辑数据服务( l o g i c a ld a t as e r v i c e ) 】。利用这两种服务可以避免 由于企业数据源的频繁变动而给数据集成工作带来的影响。 物理数据服务一般是指直接定义在底层数据源之上的,为数据集成平台上 层数据服务提供对可交数据源的访问透明性,充当平台中底层数据的基础架构, 第二章基于数据服务的数据集成平台 目的是在逻辑上整合分布于各个数据源中的数据,为底层数据提供一组预定义的 数据视图。而逻辑数据服务则是定义在物理数据服务之上的,能够提供完整语义 的一组数据访问操作。 物理数据服务和逻辑数据服务在实现上没有本质差别,只是使用目的不同, 而且它们之间的区别也是相对而言的,因为可以在逻辑服务之上定义新的逻辑服 务。但一般而言,物理服务面向底层数据,只在平台内部使用而不发布;而逻辑 服务则面向用户,为应用开发提供数据访问接口,可发布为平台数据接口。 利用这两种服务可以实现用户的数据访问对底层数据源变化的透明性。如 图2 3 所示,用户访问接口对应的逻辑服务定义在物理服务上,当底层数据源因 为某种原因需要更改时,只需重新设计物理服务,并保持它所整合的数据对上层 服务的逻辑接口不交,就可以保证逻辑服务和用户访问接口不发生变化。 逻辑服务 物理服务 数据源 逻辑服务 物理服务 数据源 图2 3 物理服务的作用 在数据服务运行时,数据服务管理平台可以根据查询的组合算法【2 7 j 将当前执 行查询的数据服务和底层物理服务之间的数据服务压缩掉,然后将当前查询分解 至若干物理服务( 数据视图) 之上【2 0 】,而不直接对应数据源作分解。管理平台可 以根据物理服务的执行结果作查询缓存,这样能够提高整个平台的查询效率。 另外,根据数据服务所提供的信息,容易得到其对应的w e b 服务接口描述, 数据服务管理平台可以自动为数据服务发布w e b 服务形式的接口,使各种上层 应用能够通过w e b 服务接口共享数据服务提供的集成数据。 2 4 技术特点 以上是对基于数据服务的数据集成平台设计的介绍,本节总结了该平台以下 几方面的技术特点: 口采用x m l x m ls c h e m a x q u e r y 标准作为平台的公共数据模型、元数据 模型和数据查询脚本格式。利用现有标准进行数据集成,避免定义私有 数据格式,可以使数据集成平台在实现中能够充分利用支持这些标准的 公共组件,同时也保证了平台的数据接口和应用程序之间的互操作性。 口通用的查询框架。该平台采用中间件的设计思路,无论是作为中介器的 第二章基于数据服务的数据集成平台 查询引擎还是数据源的包装器,都被设计为可定制和配置的通用组件。 口面向服务的体系结构及数据发布方式。平台以数据服务为单元设计数据 访问功能模块,并且支持数据服务的复用,同时发布平台中数据服务的 w e b 服务接口,使集成数据通过w e b 服务接口在上层应用程序间共享。 口声明式编程( d e c l a r a t i v ep r o g r a m m i n g ) 。由于该平台实现通用的查询逻 辑,其功能可以在数据服务的配置文件中通过声明的方式定制,因此对 于具体数据集成项目而言,实施过程是一个声明式编程( 配置) 过程。 口工具支持下的快速开发。上述声明式编程在开发工具支持下可被领域专 家等非专业开发者使用,使之在进行数据集成实施时能够专注于数据之 间的映射关系,而无需考虑获取数据源元数据等一些细节问题,为解决 数据源的频繁变动和数据模式映射中的语义异构问题提供支持1 2 8 , 2 9 。 2 5 本章小结 以中介模式为主体结构,结合中间件和面向服务的体系结构的思想,给出一 种基于数据服务的数据集成平台的设计,分析平台三个主要组成部分,即多数据 源查询引擎、数据服务管理平台和数据服务开发工具的功能,说明数据服务的概 念及其在平台中的作用。 第三章数据服务开发工具的设计与实现 第三章数据服务开发工具的设计与实现 3 1 数据服务开发工具的设计 数据服务开发工具的总体设计目标是实现一个数据服务的集成开发环境,支 持数据服务开发过程中的元数据集成、目标格式定制、可视化的数据映射、类型 检测、目标模式生成、调试执行等一系列任务。本节介绍对该工具的总体设计和 各模块的功能。 3 1 1 总体设计 图3 - 1 是数据服务开发工具的总体设计图。整个数据服务开发工具以e c l i p s e 平台插件项目f 3 4 】的方式开发,分为数据源映射、目标格式定义、查询编辑、静态 检测、调试执行五个模块。应当指出,整个开发工具只对数据源、数据服务的元 数据和数据查询定义进行操作,除调试执行模块外不涉及运行时的数据查询操 作。以下是各模块的功能说明。 3 1 2 数据源映射模块 数据源映射模块的任务是获取与数据服务相关的数据源的元数据,根据数据 源的特性将其元数据描述的异构数据格式、数据类型映射为数据集成平台内部所 采用的公共数据模型。如上一章所述,平台内部所采用的公共数据模型是基于 x m l 格式的半结构化数据模型,相应地采用基于x m ls c h e m a ,经过x q u e r y 扩展后的类型系统作为公共元数据模型。 数据源映射模块实现了从数据源元数据到平台的公共数据模型之间的转换 规则。许多数据源都维持了数据和元数据之间的一致性,这类数据源包括数据库 管理系统、w e b 服务、j a v a 打包应用程序以及数据服务本身,这些数据源能够保 证其返回的数据与提供的元数据描述之间的一致性,对于这类数据源只需直接获 取相应的元数据信息实施映射即可。但是对于某些类型的数据源,例如独立的 x m l 文档、文件系统等,本身并不维护元数据信息,这些数据源的数据和元数 据描述之间是相互独立的。因此在对这类数据源的元数据做映射之前,还需要验 证( v a l i d a t e ) 它们所提供的数据和元数据之间的一致性,以保证元数据的对数 据的有效性。 第三章数据服务开发工具的设计与实现 数据服务开发工具 麟翻翻啦霹翻嘲朗嘲强囊喇翰麓嘲僦黝,一 l 。燃 l i i= _ - * ,m - 一 7 i,。m 掘a 岳二k 囊, 弄帕朋,u 取】q 臣司 。to 验证l l 数据 i 数据模型 l 一 r h 怀制r a 7 l 戥1 日 v n 寺- t 垃d- h i h 崆“:- h 眦。工侣竹a 州觋 百j 霜 鼍 目标格式定义模块 用,、输入 一 g u i 编辑界面 g u i 编辑界面 h 用广输入 查询脚竺件| 卜一 脚本生成器l 卜 r 一, i 导a 查询编辑器返回数据模型构造器 【十 舭- m a d i d 数据服务模型数据一h 模型持久化工具 i 、 、j ,、 查询编辑模块 返回数据的旺格式 | 。,l 模型解析 调试配置管理 一 - k = 仨- 廿4 d r 置备匿仃外琨 r 静 类 可选的外部 函数废量,命名空问类型 类态型 数据服务引擎 型类匹 验证环境模式- - p- - p 型 _ 处配 元素属恸噗型声明环境理 检 判 测 断 执行结果查看 静态检测模块调试执行模块 图3 1 数据服务开发工具的总体设计 3 1 3 目标格式定义模块 数据服务需要有一个目标格式作为查询结果的返回格式呈现给服务调用者。 开发工具的目标格式定义模块为用户提供定制数据服务返回格式的功能。目标格 式采用x m l 格式来定义。在数据服务的设计中,用户可以选择采用两种方式来 定义目标格式:从x m ls c h e m a 文件导入的系统,这样会产生完整的目标模式定 义;或者通过开发工具所提供的用户界面采用手工定制的方法产生目标格式的结 第三章数据服务开发工具的设计与实现 构,这样制定的目标格式可能不是完整的,需要通过静态检测系统产生缺少的类 型信息作补充以得到最终的目标模式。 3 1 4 查询编辑模块 查询编辑模块完成对数据服务所定义数据映射的可视化编辑。由于平台采用 x m l 作为公共数据模型,数据服务很自然地采用x m l 查询语言x q u e r y 来定义 数据映射。查询编辑模块利用e c l i p s e 项目提供的建模框架e m f ( e d i p s em o d e l i n g f r a m e w o r k ) 【3 5 】和图形化编辑框架g e f ( g r a p h i c a le d i t i n gf r a m e w o r k ) 3 6 1 完成对 x q u e r y 语法元素的建模、模型的可视化编辑以及模型的持久化。在设计中,我 们对x q u e r y 语法元素所表示的数据源和目标格式做出区分和单独处理,给出用 x q u e r y 定义数据映射的一种直观表示,使用户可以通过开发工具提供的用户操 作方便地定制从数据源到目标模式的数据映射。 利用e g e f 框架可以实现,在用户通过图形界面编辑数据映射的同时, 开发工具自动维护对后台模型的更新,这样当用户完成编辑操作时,后台模型也 完成了相应的构建。当数据服务模型构建完成后,开发工具可以依据该模型完成 特定功能,最后生成的数据服务也是由该模型转化而来。例如在查询编辑模块中, 可以从数据服务模型生成数据服务的x q u e r y 查询脚本。 3 1 5 静态检测模块 作为数据服务开发工具,应该在数据服务构建过程中,对于错误的设计及时 向用户反馈。静态检测模块所提供的功能就是对数据服务进行静态的分析,保证 用户所构建的数据服务的正确性。因为x q u e r y 本身是一种纯函数式的语言,因 此静态检测所采用的主要方法是根据x q u e r y 的类型系统对所得到的数据映射模 型进行静态类型分析,保证所定义查询的类型正确性。相对其他手段,类型系统 是一个实现代价较小,而且功能强大的工具【37 1 ,特别是在异构数据集成方面,对 多种数据模式中的数据类型的检测显得尤为重要。因此静态检测是数据服务开发 工具需要提供的基本功能。 静态检测( 或静态类型检测) 是根据x q u e r y 表达式的静态语义对其进行编 译期检测,从而保证这些表达式在执行过程中不会出现类型错误( t y p ee r r o r ) 其 主要功能可分为类型推断( t y p ei n f e r r i n g ) 和类型检测( t y p ec h e c k i n g ) 两类:类 型推断是指从数据源的类型信息推断出目标表达式所具有的类型,而类型检测则 是判断从类型推断得到的表达式的类型是否与表达式声明的类型值相同。这两方 面功能在静态检测中是相互依赖的,类型检测显然需要得到类型推断的结果,而 在某些类型推断过程中也需要检测输入类型是否满足相关条件。 第三章数据服务开发工具的设计与实现 静态检测模块的另一个重要功能是产生数据服务本身的元数据格式。因为当 数据服务被复用,即在数据服务之上定义新的数据服务时,数据服务作为一种数 据源被使用,因而需要取得其元数据信息。静态检测模块在数据服务构建时产生 其元数据描述,为数据服务作为特殊数据源使用提供支持。 我们利用类型推断和类型检测来产生数据服务的元数据。当定义数据服务的 目标格式时,如果是从完整的x m ls c h e m a 导入的,则它的元数据已经确定,要 做的只是通过类型检测来确保映射产生的数据类型是所指定目标类型的子类型。 如果是从用户界面定制的目标格式,则有可能目标格式的数据类型没有完全确 定,这时可以利用类型推断得到完整的目标模式定义。 静态检测对数据服务项目而言相当于构建过程,因而在实现该模块时,利用 s c l i p s e 插件开发环境提供的n a t u r e b u i l d e r 扩展点,将静态检测模块实现为和数 据服务项目关联的构建器。 3 1 6 调试执行模块 通过静态类型检测只能保证数据服务在执行过程中不发生类型错误,而不能 确保数据服务的设计满足使用者的开发需求。这正如一段程序通过编译期检查只 能保证其语法和类型的正确性,而不能保证这段程序所实现的功能是用户所需要 的。因此要确保数据服务的语义正确性,只有通过运行数据服务,并将实际运行 结果展示给设计者,由他们根据运行结果来判断数据服务的设计是否满足需要。 调试执行模块便是通过调用多数据源查询引擎运行当前设计的数据服务,并将执 行结果返回给数据服务的开发者来实现数据服务调试的。 以上介绍了数据服务开发平台设计,下面说明对数据服务建模和模型可视化 编辑的实现。首先介绍建立数据服务模型的基础x q u e r y 查询语言。 3 2x q u e r y 查询语言的特征 x q u c r y 是随着x m l 数据交换技术的成熟而发展起来的。随着x m l 越来越 广泛地应用,需要有一种定义在x m l 数据格式上的查询语言,x q u e r y 就是在 这种背景下诞生的f 3 引。数据集成平台使用x m l 作为公共数据模型,在公共数据 模型上的查询采用x q u e r y 定义,x q u e r y 查询脚本是数据服务的核心组成。 x q u c r y 是w 3 c 制定的一种查询和转换x m l 数据的声明式语言,有以下两 个显著特征【3 8 】: 首先,x q u e r y 是一种纯函数式语言,其所有语法构件都是表达式,而且表 达式可以作为其他表达式的输入从而形成新的表达式。x q u e r y 查询主体( q u e r y 第三章数据服务开发工具的设计与实现 b o d y ) 实际上就是一个表达式。函数式语言另外一个特征是传值调用函数,函 数没有副作用( s i d ee f i e c tf r e e ) 。 其次,x q u e r y 是一种强类型语言,本身支持通过导入x m ls c h e m a 来描述 输入输出文档的格式,在此基础上,通过x q u e r y 的类型系统可以对查询进行静 态类型检测,在编译期发现类型错误。 下面分别从这两方面概述x q u e r y 的特征: 3 2 1x q u e r y 的语法特征 x q u e r y 定义了丰富的运算符和函数库 3 9 1 。除此以外,x q u e r y 是为x m l 数 据查询量身定制的,因此提供了针对x m l 数据作查询的特征,包括: 1 通过路径表达式( p a t he x p r e s s i o n ) 支持在树状x m l 数据模型【4 0 】中的导 航和节点选择。基本路径表达式通过分隔父子元素,例如: b i b b o o k a u t h o r 和b i b b o o k y e a r ,分别选择根元素 下的 元 素的子元素 和属性y e a r 。复杂的路径表达式可以增加节点测试 (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 部编本二年级上册语文第二至七单元(内容含课文口语交际及语文园地)全部教案
- 城市规划学徒指导手册
- 油气勘探钻探施工合同
- 劳务派遣员工健康检查
- 汽车制造锅炉房施工合同
- 环保项目严禁参与虚假环保承诺
- 硫酸厂宿舍楼施工协议
- 科技园区研发创新车库改造协议
- 石油公司出纳人员聘用合同
- 室内运动场地坪施工协议
- 统编小学语文四年级上册教材解读及教学建议课件(19页)
- 铁塔基础施工方案(完整版)
- 课堂教学观察量表—教师课堂教学行为观察量表
- 子儿吐吐(绘本) (2)
- 王浦劬《政治学基础》笔记详细版
- 信息资产管理制度管理办法
- 家长学校课程安排
- 厦门宏发继电器基础知识(课堂PPT)
- 储罐大修施工方案
- 2022年住宅室内装饰装修管理办法全文
- 经纬度数转换工具
评论
0/150
提交评论