(计算机软件与理论专业论文)数据服务开发工具的设计与实现.pdf_第1页
(计算机软件与理论专业论文)数据服务开发工具的设计与实现.pdf_第2页
(计算机软件与理论专业论文)数据服务开发工具的设计与实现.pdf_第3页
(计算机软件与理论专业论文)数据服务开发工具的设计与实现.pdf_第4页
(计算机软件与理论专业论文)数据服务开发工具的设计与实现.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

(计算机软件与理论专业论文)数据服务开发工具的设计与实现.pdf.pdf 免费下载

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

文档简介

中文摘要 随着企业信息化程度的提高,如何通过大量异构的数据源,为企业提供简单 高效的数据访问能力,成为数据集成领域的研究重点。数据服务是面向服务体系 结构在数据集成领域的应用,基于数据服务的数据集成平台采用中介体系结构, 为企业应用提供访问业务数据的虚拟视图。 结合基于数据服务的数据集成平台,本文以e c l i p s e 插件项目实现了数据服 务开发工具,该工具使用e m f 建立数据服务模型,利用g e f 实现其可视化编辑 器。数据服务开发工具由数据源映射、查询编辑、目标格式定义、静态检测和调 试执行五个模块组成,支持用户可视化的数据源导入、数据映射以及手工定制目 标数据格式,数据服务的元数据映射、查询脚本、目标格式文件都由后台根据数 据服务模型自动生成。工具采用x m l 作为公共数据模型,以x q u e r y 作为其类 型系统,在此基础上静态检测模块对数据服务进行编译期检查,所有类型错误都 在问题视图中列出。数据服务开发工具调试执行模块可以帮助开发者执行本地数 据服务,验证其正确性。 数据服务开发工具简化了数据服务的开发过程,提高了数据集成方案的开发 效率,同时使更多的领域专家可以参与到数据集成过程中,这些人并非专业程序 人员,但精通业务应用,在进行语义集成时具有很大的优势。借助数据服务开发 工具的查询可视化编辑及服务自动生成功能,开发者可以快速开发部署完成特定 查询任务的数据服务,而无需编写专业的查询代码和配置文件,从而最大限度的 发挥他们的专业特长。 关键词:数据集成数据服务x q u e r y 静态检测e c l i p s e 插件 a st h ei n c r e m e n t e 历c i e n td a t aa c c e s st o a b s t r a c t o fe n t e r p r i s ei n f o r m a t i o n ,h o wt o p r o v i d eas i m p l ea n d e n t e r p r i s e s ,t h r o u g hal a r g en u m b e ro fh e t e r o g e n e o u sd a t a s o l ic e s ,h a sb e c o m ear e s e a r c hf o c u si nt h ed a t ai n t e g r a t i o nf i e l d b a s e do nt h ed a t a s e r v i c e s ,w h i c ha lea p p l i c a t i o n so fs e r v i c e o r i e n t e da r c h i t e c t u r ei nt h ea r e ao fd a t a i n t e g r a t i o n ,t h ed a t ai n t e g r a t i o np l a t f o r mu s e sa ni n t e r m e d i a r ya r c h i t e c t i l r ea n d p r o v i d e sav i r t u a lv i e wf o re n t e r p r i s ea p p l i c a t i o n st ov i s i tb u s i n e s sd a t a b a s e do nt h ed a t as e r v i c ei n t e g r a t i o np l a t f o r m ,t h i sp a p e r p r e s e n t st h ed e s i g na n d i m p l e m e n t a t i o no fad 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 d e v e l o p e da se c l i p s e p l u g 。i np r o j e c t ,w h i c he 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 ff o rv i s u a l i z e d m o d e le d i t i n g 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 i c e m a p p i n g ,q u e r ye d i t i n g ,t a r g e tf o r m a t 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 e sd a t a s e r v i c ed e v e l o p e r sw i t has e r i e so fs u p p o r t ss u c ha sv i s u a l i z e dd a t as o u r c e si m p o r t d a t am a p p i n ga n dt a r g e tf o r m a tc u s t o m i z i n g f u r t h e r m o r e ,t h em e t a d a t ai n t e g r a t i n g 。 x q u e r ys c r i p t sa n dt a r g e ts c h e m aa r eg e n e r a t e da u t o m a t i c a l l yi nt h eb a c k g r o u n d 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 nt h et o o l ,a n dx q u e r ya st h e t y p es y s t e m o nt h eb a s i so ft y p es y s t e m , s t a t i cc h e c k i n gm o d u l ec o m p i l e sd a t a s e r v i c e s ,a n da l lt y p ee r r o r sa r el i s t e di nt h ep r o b l e m v i e w d e b u gm o d u l eo ft h ed a t a s e r v i c e sd e v e l o p m e n tt o o lc a nh e l pt h ed e v e l o p e rt or u nt h el o c a ld a t as e r v i c ea n d v e r i f yi t sa c c u r a c y d a t as e r v i c e s d e v e l o p m e n tt o o ls i m p l i f i e st h ep r o c e s so fd e v e l o p i n gd a t a s e r v i c e s ,m a p r o v e st h ed e v e l o p m e n te f f i c i e n c yo fd a t ai n t e g r a t i o np r o g r a m ,s ot h a t m o r ef i e l de x p e r t sc a n p a r t i c i p a t ei nt h ed a t ai n t e g r a t i o np r o c e s s t h e s ep e o p l ea r cn o t p r o f e s s i o n a lp r o g r a m m e r s ,b u tt h e ya r ep r o f i c i e n c yi nb u s i n e s sa p p l i c a t i o n sa n dh a v e ag r e a ta d v a n t a g ew h e nt a k i n gas e m a n t i ci n t e g r a t i o n w i t ht h ev i s u a l e d i t i n ga n d s e r v i c e sa u t o m a t i c a l l yg e n e r a t e df e a t u r e so ft h ed a t a s e r v i c e sd e v e l o p m e n tt o o l , d e v e l o p e r sc a nq u i c k l yd e v e l o pa n dd e p l o yd a t as e r v i c e s w h i c hc o m p l e t es p e c i f i c q u e r yt a s k s ,w i t h o u tt h en e e dt op r e p a r ef o rt h ep r o f e s s i o n a lc o d ea n dc o n f i g u r a t i o n f i l e s ,t h e r e b ym a x i m i z i n gt h ep l a yo ft h e i rp r o f e s s i o n a la d v a n t a g e k e yw o r d s :d a t a i n t e g r a t i o n ,d a t as e r v i c e ,x q u e r y , s t a t i cc h e c k i n g ,e c l i p s e p l u g i n 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得苤注盘鲎或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位黼:哗期:如f 年月r 日 学位论文版权使用授权书 本学位论文作者完全了解墨鲞盘堂有关保留、使用学位论文的规定。 特授权苤鲞盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学雠文储躲需使乍 签字日期:如苦年6 月土哨 导师签名: 签字日期:d 哪占年易月厂日 , 第一章绪论 1 1 研究背景 第一章绪论 随着近年来企业信息化的不断深入,组织间和组织内部经常需要频繁进行数 据交换,而业务数据是企业应用的基础,在开发和维护应用的过程中,机构经常 将大量的时间用在创建和维护数据访问机制上。因此,如何快速、有效地获取数 据,为企业提供高效便利的数据访问接口,成为企业应用开发和应用集成的关键 问题。 然而,在企业信息化建设过程中,各个部门在不同阶段根据各自的信息需求 和特定的应用开发了基于不同数据源的应用系统。这些系统大都采用不同的数据 表示方法和存储方式,采用不同的访问和处理方法,导致企业应用之间缺乏互操 作性,无法有效实现信息共享与交互,形成了所谓的“信息孤岛”【l 】。“信息孤 岛”不仅提高了企业维护数据的费用,而且企业很难根据分散的数据做出正确的 决策。 现阶段的业务数据源主要包括以下几类:一类是传统的关系数据库,另一类 是半结构化的x m l 、h t m l 数据,以及声音、图像等非结构化的多媒体数据。 此外,基于以上几种数据源构建的企业遗留系统、应用程序、w e b 服务等也可以 作为数据源的形式。如何方便快捷地访问这些异构数据源中的数据,成为近年来 企业数据集成领域关注的焦点。 1 2 数据集成概述 数据集成是把不同来源和不同格式的数据在逻辑上或物理上有机地集中,提 供一个访问异构数据源的统一接1 2 1 ,使用户不必考虑数据源数据模型的异构性、 数据抽取、数据合成等问题,用户只需指定他们需要的数据,而不必描述怎样去 获取数据,从而为企业提供全面的数据共享 2 。 数据集成领域的数据源主要有自治性、分布性以及异构性等典型特征【j l 2 l 。 自治性指数据源处于不同组织机构的维护管理下,主要体现为设计自治性,通讯 自治性和联系自治性。分布性指数据源分布在不同的地理位置,采用不同的通讯 方式或带宽进行访问【4 j 。异构性分为平台的异构性、系统的异构性和数据的异构 第一章绪论 性,主要是指数据源位于不同的硬件平台上,采用不同的软件系统进行管理,并 且数据源数据的语法、模式、语义等方面都存在很大的差异。 数据集成的核心任务就是将这些分布异构的数据源集成到一起使用户能够 以透明方式访问这些数据源【5 。集成是指隐藏数据源个体差异,向用户提供一个 统一透明的数据访问接口,使用户无需关心所需数据所在数据源的位置以及如何 访问数据源,只需集中关注对数据的访问和操作 3 】。在提高用户访问数据效率的 同时,数据集成还需要保持数据在不同数据系统上的完整性和一致一t 生t 6 1 。 1 3 现阶段解决方案 在企业数据集成领域,已经存在许多成熟的框架可以使用。现阶段,流行的 数据集成方案大致可以分为两类,即物化方式和模式映射方式 7 1 。 ( 1 ) 物化方式 物化方式是在客户端与数据源之间增加一层,称为数据仓库,用于存储来自 各数据源的待集成数据,由系统提供对这个数据仓库的查询机制。这种方法可以 用于数据集成,也可以用于决策支持查询。这种方法带有数据仓库固有的缺点, 即数据更新不及时、数据重复出现以及需要更多的硬件资源等等。 ( 2 ) 模式映射方式 模式映射方式中的数据仍保存在个分散数据源中,集成系统维护一个虚拟的 全局视图以及在全局视图上的查询。这种集成方法的数据从各实际数据源实时获 得,适合于更新变化快的异构数据源,缺点是系统设计实现比较复杂。 同时,不能忽略x m l 在过去十年的数据集成史上所起的重要作用。数据集 成的核心问题就是将大量异构的数据表示为某种统一的形式,这就要求数据集成 平台找到一种标准、开放的数据结构来表示业务数据,而x m l 无疑是最佳选择。 作为w 3 c 设计并推荐的新一代可扩展标记语言,它以一种开放的自我描述方式 定义数据结构,在描述数据内容的同时能突出对结构的描述,从而体现数据之间 的关系,这些特点使得它可以描述描述不规则的数据,能够集成来自不同数据源 的数据,可以将多个应用当中的数据纳入同一个x m l 文件中。鉴于x m l 数据 的特点,目前已经有一些数据集成系统使用x m l 作为其基本数据模型,并且使 用x m l 查询语言( x q u e r y ) 作为基本查询语言,来实现对异构数据源的访问【8 】。 在这样的背景下,很多机构和组织都开发了不同的数据集成组件,用来满足 用户对异构数据源的互操作。比较有代表性的有s q l h u b 9 】、a q u a l o g i cd a t a s e r v i c e sp l a t f o r m l l 、s t y l u ss t u d i o2 0 0 8 1 1 】等。s q l h u b 支持将关系型数据库、 网络数据、数据文件如e x c e l 、x m l 、文本等数据源映射为虚拟关系数据库表, 2 第一章绪论 以关系数据模型为平台元数据,以基础s q l 为平台查询语句,透明操作各个数 据源,s q l h u b 将针对不同数据源的s q l 查询翻译为数据源相关技术实现的查 询执行并返回结果。a q u a l o g i cd a t as e r v i c e sp l a t f o r m 是b e a 公司开发的面向服 务的数据集成平台,以x m l 为公共数据模型,x q u e r y 为查询语言,支持关系 数据库、w e b 服务、j a v a 函数接口、x m l 数据、特殊标记文件等异构数据源的 集成,向用户提供透明的访问接口,提高数据访问效率。最后,s t y l u ss t u d i o2 0 0 8 是s t y l u ss t u d i o 出品的x m l 下的i d e 工具,提供对关系数据源、w e b 服务、x m l 文档等数据源的集成,它包括一系列的x m l 工具,提供数据的可视化映射,查 询语句的自动生成以及预览查询结果等操作。 1 4 本文的主要工作 本文的工作是基于数据服务的数据集成平台的一部分。基于数据服务的数据 集成平台采用中介体系结构,包括多数据源查询引擎、数据服务开发工具和数据 服务管理平台三个部分,通过数据服务将各个模块联系起来,为企业数据访问提 供通用的集成方案。 本文负责数据服务开发工具的设计与实现。主要包括如下工作: 口数据服务建模:采用e m f 对数据服务进行建模,采用m d a 思想自动生 成模型代码; 口可视化查询编辑器:利用数据服务模型,通过g e f 框架生成数据服务查 询编辑器,提供可视化开发界面; 口查询代码生成:通过遍历数据服务模型,自动生成x q u e r y 查询代码, 用来配置多数据源查询引擎; 口静态检测:通过静态检测对数据服务进行预编译,检测查询的类型合法 性,同时通过类型推断生成目标数据格式,为发布数据服务提供模式信 息。 1 5 全文安排 本文按如下顺序安排各章内容: 第一章绪论,介绍数据集成的应用背景,数据集成的概念及现阶段数据集成 领域的一些解决方案,并简述了自己的主要工作。 第二章基于数据服务的数据集成平台,介绍了数据服务的概念,以及在现有 第章绪论 的数据集成解决方案基础上给出的基于数据服务的数据集成平台的总体设计,分 析了平台中各组成模块的功能。 第三章数据服务模型设计,介绍数据服务开发工具的总体设计,介绍了开发 工具各模块的功能,在此基础上介绍了x q u e r y 查询语言及其类型系统,并利用 e m f 完成模型的建立与代码框架的生成。 第四章基于e c l i p s e 的数据服务开发工具实现,利用e m f 建立的模型,通过 g e f 实现开发工具的视图编辑器,包括查询编辑器、大纲视图、属性视图等, 并为编辑器添加消息监听器及菜单动作。 第五章查询代码生成与静态检测,介绍了x q u e r y 的静态语义,x m ls c h e m a 的类型系统,通过遍历数据服务模型,生成查询脚本,完成类型检测与目标模式 生成,并详细阐述了类型检测相关算法的实现。 第六章案例与结论,给出一个数据服务应用案例,结合一个多数据源集成应 用来演示使用数据服务开发工具构建数据服务的详细过程;总结目前所作的工 作,同时指出工具存在的问题以及今后需要完善的工作。 第二章基于数据服务的数据集成平台 2 1 设计背景 第二章基于数据服务的数据集成平台 现代企业应用不仅要在自身内部进行数据交换,还需要跟网络上的其他实体 进行信息共享,企业信息交换从实体内部走向实体之间。当前企业信息集成面临 如下的困难【”j : 1 数据源和数据格式的多样化和多量化 传统的关系型数据库、文件系统,新兴的以x m l 为编码格式的w e b 数据乃 至多媒体数据,都可以作为数据集成的数据源;另外企业中的遗留系统( l e g a l s y s t e m ) 、e r p c r m 等打包应用程序( p a c k a g ea p p l i c a t i o n ) 、互联网上的w - e b 服务、消息或邮件服务甚至特殊标记的文件( d e l i m i t e df i l e ) 都可以看作一种数 据源形式。这些数据源不但具有很强的异构性,而且随着业务的发展,企业中数 据源呈现多量化的趋势。 2 数据源的不确定性和频繁变动 随着互联网和w e b 技术的发展,企业实体交换信息的范围已经发展到企业 间以至全球范围,为企业提供数据的数据源通常处于自治实体的管理下。一方面 对数据源的访问受到网络性能、提供方的状况等不确定因素的影响;另一方面随 着动态联盟、虚拟企业等新型的经营模式的兴起,数据源的提供者和访问者能够 自主地选择和发布数据,因此在企业数据集成中的数据源往往处在频繁变动中。 3 集成数据的可复用性及有效发布 经过数据集成后的数据应该可以被企业中所有的应用程序所共享,因此数据 集成平台所提供的应用程序接口应该具有良好的可复用性,要求为企业数据集成 所做的开发工作不应该依赖于特定企业应用的开发。如果针对现阶段的企业应用 开发或应用集成所制定的数据集成方案及其发布的数据不能被以后的开发工作 所使用,则无法避免形成新的信息孤岛现象,那么为数据集成所做的努力将在很 大程度上失去意义。另外,在确保为集成、聚集和转换数据所做的工作可复用的 同时,也要求数据更容易地向应用程序传递。企业信息集成( e n t e r p r i s e i n f o r m a t i o ni n t e g r a t i o n ,e l i ) 方案关注于这个问题的解决,通常是提供一个数据服 务层( d a t as e r v i c el a y e r ) ,从根本上简化分布数据的访问和集成 2 5 1 。总的来讲, 这不仅仅是数据集成方面的问题,而且包括集成数据的有效发布。 第二章基于数据服务的数据集成平台 4 数据源数据本身的异构 由于互联网技术的普及,通过网络可以访问的数据源的数目和种类越来越 多,使得企业间乃至全球范围内的数据交换成为可能,同时数据异构的问题也愈 加尖锐。对于与具体领域数据有关的企业应用,数据集成的实现不仅仅由软件开 发人员来完成,而是更多地依赖领域专家的参与,有关数据集成的研究也越来越 关注数据所表示的知识、信息等语义的异构性。 从上述可以看出,数据集成系统所要面对的数据源分布范围越来越广,数据 量和数据种类越来越多,因此数据集成系统的实现不能以对数据源的控制为前 提,而是要设计良好的数据集成系统适应这些独立数据源的变化;同时,集成系 统集成的焦点是数据本身的异构性,而不是平台和系统的异构性。 2 2 数据服务 2 2 1 数据服务概念 数据服务是在论文 15 中作为面向服务的体系结构( s e r v i c eo r i e n t e d a r c h i t e c t u r e ,s o a ) 在数据集成领域的应用提出的概念。所有数据服务构成数据 服务层,它为上层应用提供统一的数据编目,允许企业应用以透明方式访问异构 数据源,以简化数据的访问和管理。在以s o a 为架构的数据服务层设计中,数 据根据其语义和应用程序的需要被逻辑地分段,每一段成为可被上层应用通过数 据服务层所提供的标准a p i 访问的功能模块即数据服务。 与w e b 服务类似,数据服务可以认为是分布式异构数据环境中定义的自包 含、自描述的松散耦合的数据模块,由一系列标准( x m l 、x m ls c h e m a 、x q u e r y ) 支持它们之间的互操作,并且可以通过复用现有数据服务定义新的数据服务。同 时也需要注意到数据服务被局限于提供服务的平台环境中,可以将数据服务以 w e b 服务形式提供给应用程序,从而解决数据服务的发布问题。 2 2 2 数据服务内容 如上所述,数据服务应该是白包含、自描述的模块,为完成对一个数据查询 功能模块的描述,并以此完成对查询引擎的配置,数据服务应该包含下列信息: 口数据源元数据,提供数据源中的数据模式或者获取这些信息的方式; 口数据源的配置信息,提供所有与数据源相关的配置信息,包括数据源的 类型、位置、数据格式、数据转换方式等; 口数据服务查询脚本,定义了从数据源到目标数据之间的映射关系,与数 6 第二章基于数据服务的数据集成平台 据源配置信息一起配置查询引擎,返回服务结果; 口数据服务间的依赖关系通过复用已有的数据服务可以定义新的数据服 务,因此需要记录数据服务之间的依赖关系,为平台提供管理信息; 口数据服务的元数据,用来发布数据服务或自身作为数据源被其他服务引 用; 口安全策略和权限控制,定义了对数据服务调用者的限制。 23 平台总体设计 图2 - l 是基于数据服务的数据集成平台的总体设计。该平台采用) 叽作为 公共数据模型,主要由三部分组成:多数据源查询引擎、数据服务管理平台和数 据服务开发工具。平台采用以中介系统为主体的体系结构中介器使用x m l 作 为公共数据模型,在中介器下层针对各类数据源设计独立的包装器,将数据源中 的本地数据包装为公共数据模型的格式叫】。 0 _ j ”“、,。= i ,n * “s * 一一 i 一i l i 翻瞄鞠_ 舞脯l 譬i 枉r 控制艟蜘哺叁一j 豢l i 旧io 川一i - :- :;| = | hj 旧i ;一土* 2 厂 l 蛮l 薄l 磐l 霹等f 囤固固匿国国 图2 1 基于数据服务的数据集成平台 第二章基于数据服务的数据集成平台 2 3 1 公共数据模型 整个平台内部采用x m l 1 q 作为公共数据模型,x q u e r y 的类型系统作为公共 元数据模型,并以x q u e r y t l 6 1 作为公共查询语言。x q u e r y 的类型系统以x m l s c h e m a 类型系统为基础,并作出适当的扩展,提供了对无类型和序列类型的支 持,可以很好的支持多种数据源以及中间查询结果。 2 3 2 多数据源查询引擎 平台采用中介系统的体系结构实现了通用的多数据源查询引擎。它是在普通 x q u e r y 查询引擎基础上通过扩展特殊标记的外部函数来实现对多个异构数据源 的查询,而这些外部函数实际上调用了相应类型的数据源包装器来完成访问数据 的能力【1 7 】。包装器主要用来完成数据源绑定、数据访问以及数据模型绑定这几 项任务【1 8 】,可以针对每类数据源设计实现通用的包装器,在实际执行时动态进 行配置。包装器根据配置信息配置数据源,执行查询并返回结果给中介器。例如 对于x m l 文档,可以直接调用查询引擎进行查询,而对于关系型数据库,可以 用数据源配置文件配置包装器,执行相应的查询代码,这样查询就下推到相应数 据源的d b m s 去执行,最终返回x m l 格式的数据。 2 3 3 数据服务管理平台 数据服务管理平台的主要作用是提供对数据集成平台中数据服务的管理,其 主要功能包括: 口数据服务的生命周期管理:包括数据服务的注册、发布、挂起、移除和 更新等操作,管理平台提供相应的控制接口完成所有的管理功能。 口数据服务的运行时管理:负责接受用户提交的查询请求,配置多数据查 询引擎,返回查询结果。 口数据服务的安全策略和权限控制:对数据服务进行控制,对数据服务的 访问、访问过程中涉及的数据加以限制和保护。 口数据服务的应用接口:管理平台在数据服务注册时自动生成对应的w e b 服务接口描述,企业应用可以通过w e b 服务访问数据服务。 在基于数据服务的数据集成平台中,数据服务是各模块联系的纽带,是平台 的基本组织单元。数据服务通过数据服务开发工具获得,交由管理平台进行发布 管理,当有数据服务请求到达时配置多数据源查询引擎,执行数据服务查询并返 回结果【1 9 】。在实现中,数据服务以w e b 服务形式发布,并支持服务的复用。 第二章基于数据服务的数据集成平台 2 3 4 数据服务开发工具 数据服务开发工具为数据服务开发者提供便利,使他们能够可视化地与多种 数据源交互,获得其元数据信息,并以统一视图的形式展示;用户可以定义查询 的目标格式,通过手工连线操作完成数据从源到目标的映射,而相应的查询代码 由平台自动生成。通过数据服务开发工具,用户可以将开发的关注点放在数据之 间的映射关系上,而无需关心数据源具体的访问、格式等信息。此外,数据服务 开发工具还提供相应的预处理,通过类型检测,可以发现数据服务开发过程中因 为误操作发生的类型错误,提高开发效率。 开发工具提供对元数据集成、查询编辑、静态检测、测试运行等一系列的支 持,可以充分发挥领域专家在数据集成中的作用,使得这些并不熟悉数据查询语 言的开发者也能完成对数据服务的开发。数据服务开发工具的设计和实现也是本 文工作的主要内容。 2 4 本章小结 本章总结了当前企业数据集成面临的问题,介绍了数据服务的相关概念及其 内容,简要说明了基于数据服务的数据集成平台的主体设计结构,介绍了平台的 组成部分以及各部分的功能。 3 1 总体设计 第三章数据服务模型设计 数据服务开发工具的总体设计目标是实现一个数据服务的集成开发环境,支 持数据服务开发过程中的元数据集成、目标格式定制、可视化的数据映射、类型 检测、目标模式生成、调试执行等一系列任务【l3 1 。图3 1 是数据服务开发工具总 体结构图。 数据服务开发工具 堰二l 苣司崮l 朋 塌埴执 j 撒疑 图3 1 数据服务开发工具的总体设计 1 0 囝。女 第三章数据服务模型设计 3 1 1 数据源映射模块 数据源映射模块的任务是获取与数据服务相关的数据源的元数据,根据数据 源的特性将其元数据描述的异构数据格式、数据类型映射为数据集成平台内部所 采用的公共数据模型。如上一章所述,平台内部所采用的公共数据模型是基于 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 ) 它们所提供的数据和元数据之间的一致性,以保证元数据的对数 据的有效性。 3 1 2 查询编辑模块 查询编辑模块完成对数据服务所定义数据映射的可视化编辑。由于平台采用 x m l 作为公共数据模型,数据服务很自然地采用x m l 查询语言x q u e r y 来定义 数据映射。查询编辑模块利用e c l i p s e 项目提供的建模框架e m f ( e c l i p s em o d e l i n g f r a m e w o r k ) 1 2 4 j 和图形化编辑框架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 ) 2 0 】完成对 x q u e r y 语法元素的建模、模型的可视化编辑以及模型的持久化。在设计中,工 具对x q u e r y 语法元素所表示的数据源和目标格式做出区分和单独处理,给出用 x q u e r y 定义数据映射的一种直观表示,使用户可以通过开发工具提供的用户操 作方便地定制从数据源到目标模式的数据映射。 利用e m f g e f 框架可以实现,在用户通过图形界面编辑数据映射的同时, 开发工具自动维护对后台模型的更新,这样当用户完成编辑操作时,后台模型也 完成了相应的构建。当数据服务模型构建完成后,开发工具可以依据该模型完成 特定功能,最后生成的数据服务也是由该模型转化而来。例如在查询编辑模块中, 可以从数据服务模型生成数据服务的x q u e r y 查询脚本。 3 1 3 目标格式定义模块 数据服务需要有一个目标格式作为查询结果的返回格式呈现给服务调用者。 第三章数据服务模型设计 开发工具的目标格式定义模块为用户提供定制数据服务返回格式的功能。目标格 式采用x m l 格式来定义。在数据服务的设计中,用户可以选择采用两种方式来 定义目标格式:从x m ls c h e m a 文件导入的系统,这样会产生完整的目标模式定 义;或者通过开发工具所提供的用户界面采用手工定制的方法产生目标格式的结 构,这样制定的目标格式可能不是完整的,需要通过静态检测系统产生缺少的类 型信息作为补充以得到最终的目标模式。 3 1 4 静态检测模块 作为数据服务开发工具,应该在数据服务构建过程中,对于错误的设计及时 向用户反馈。静态检测模块所提供的功能就是对数据服务进行静态的分析,保证 用户所构建的数据服务的正确性。x q u e r y 本身是一种纯函数式的语言,因此静 态检测所采用的主要方法是根据x q u e r y 的类型系统对所得到的数据映射模型进 行静态类型分析,保证所定义查询的类型正确性。相对其他手段,类型系统是一 个实现代价较小,而且功能强大的工具1 2 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 导入的,则它的元数据已经 确定,要做的只是通过类型检测来确保映射产生的数据类型是所指定目标类型的 子类型。如果是从用户界面定制的目标格式,则有可能目标格式的数据类型没有 完全确定,这时可以利用类型推断得到完整的目标模式定义。 静态检测对数据服务项目而言相当于构建过程,因而在实现该模块时,利用 e c l i p s e 插件开发环境提供的n a t u r e b u i l d e r 扩展点,将静态检测模块实现为和数 第三章数据服务模型设计 据服务项目关联的构建器。 3 1 5 调试执行模块 通过静态类型检测只能保证数据服务在执行过程中不发生类型错误,而不能 确保数据服务的设计满足使用者的开发需求。这正如一段程序通过编译期检查只 能保证其语法和类型的正确性,而不能保证这段程序所实现的功能是用户所需要 的。因此要确保数据服务的语义正确性,只有通过运行数据服务,并将实际运行 结果展示给开发者,由他们根据运行结果来判断数据服务的设计是否满足需要。 调试执行模块便是通过调用多数据源查询引擎运行当前设计的数据服务,并将执 行结果返回给数据服务的开发者来实现数据服务调试的。 3 2x q u e r y 查询语言简介 数据集成平台中采用x m l 作为公共数据模型,就必须有一种针对x m l 的 查询语言,作为平台的公共查询语言。x q u e r y 是一种强大、简洁、高度优化的 x m l 查询语言,它继承了x p a t h 表达式的特点,实现了自己特有的查询语句。 通过x q u e r y ,可以从一个或多个x m l 文档中准确提取出所需的数据集,返回 x m l 结果。同时,x q u e r y 还可以查询关系数据库和其他结构化数据,使用结果 构造器构造结果x m l 文档,这也为结构化数据的集成提供了很大的便利。 作为w 3 c 制定的查询和转换x m l 数据的声明式语言,x q u e r y 有如下两个 重要特征 2 2 】: 1 x q u e r y 是一种函数语言。x q u e r y 任何构造语句都是表达式,而且表达 式可以作为其他表达式的输入组成新的表达式,只要输入表达式的类型 其他表达式需要的类型相符。另一个函数式语言的特征就是变量都是按 值传递,即函数无副作用。 2 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 的可选实现特征,静态类型分析根据x q u e r y 静态语义对查询做静态类型检测,在编译期发现类型错误,同时可以依 据输入表达式的类型推导输出表达式结果的类型。 3 2 1x q u e r y 表达式 x q u e r y 定义了多种表达式,包括路径表达式、序列表达式、算术表达式、 第三章数据服务模型设计 比较表达式、构造表达式、条件表达式等,按照功能不同,将它们分类如下: 1 路径表达式( p a t he x p r e s s i o n ) ,支持在树状x m l 数据模型中的导航和 节点选择。基本路径表达式通过分隔父子元素,例如: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 。基本路径表达式分为绝对路径表达式和相对路径 表达式,用是否以或开始来区分,绝对路径表达式从文档根元素开始 遍历文档,相对路径表达式则表示由若干被或分开的路径表达式组成 的路径表达式。复杂的路径表达式可以增加节点测试( n o d et e s t ) 、导 航轴( a x i s ) 等语法元素。 2 构造器表达式( c o n s t r u c t o r ) ,支持对返回格式的构造。通过x q u e r y 的 构造器表达式可以在返回结果中直接产生x m l 节点。x q u e r y 的构造器 表达式分为直接构造器( d i r e c tc o n s t r u c t o r ) 和计算构造器( c o m p u t e d c o n s t r u c t o r ) 两种。直接构造器通过直接书写x m l 标记构造节点,通过 花括号来切换x m l 标记和普通x q u e r y 表达式的范围( 类似于j s p 的语 法) ,较为直观。计算构造器以普通表达式的形式构造节点,提供比直接 构造器更强的构造能力,例如对元素标签名的动态构建,这是直接构造 器无法做到的。 3 f l w o r 表达式,x q u e r y 中功能最强大的一种表达式,类似s q l 语言中 的s e l e c t - f r o m w h e r e 语句,提供循环、过滤、查询、排序和结果 返回等核心功能。f l w o r 表达式是x q u e r y 的核心,它允许用户在值序 列上作循环( f o r ) ,中间结果绑定( f o r 、l e t ) ,值条件过滤( w h e r e ) ,排 序( o r d e rb y ) 和构造返回结果( r e t u r n ) ,绝大多数的x q u e r y 语句都是 围绕f l w o r 表达式构造的。 其他的表达式都直接或间接作为上面三种表达式的子表达式出现,如算术表 达式可能出现在构造器表达式中,用于计算结果节点的值。在此基础上,x q u e r y 定义了丰富的运算符和函数库 33 1 ,这些函数和运算符几乎可以运用在以上的所 有表达式中。 3 2 2x q u e r y 类型系统 x q u e r y 的类型系统增加了x m l 查询所需的序列类型( s e q u e n c et y p e ) 。由 于查询时往往需要维护中间结果的节点序列,并在其上定义循环、文档顺序等, 因此x q u e r y 类型系统增加了对序列类型数据的支持。 x q u e r y 的类型可以分为两种:s c h e m a 类型和s e q u e n c e 类型。x q u e r y 的 类型系统是基于x m ls c h e m a 的,x q u e r y 中的原生类型在x m ls c h e m a 规范中 1 4 第三章数据服务模型设计 定义,包括整型、浮点型、布尔型、字符串等4 9 常用类型。x q u e r y 支持通过扩 展( e x t e n s i o n ) 和限制( r e s t r i c t i o n ) 两种方式从已有类型派生新的数据类型, 为尽可能精确地支持多种数据奠定了基础。 x q u e r y 提供对无类型数据的支持,x q u e r y 分别使用x s :u n t y p e d 和 x s :u n t y p e d a t o m i c 类型表示无类型声明的元素和属性。由于每个x m l 查询的返 回结构都是一个节点序列,所以x q u e r y 的类型系统增加了对序列类型( s e q u e n c e t y p e ) 的支持。 3 3 利用e m f 对系统建模 3 3 1e m f 简介 e m f 是e c l i p s e 中的建模框架,用来定义和实现结构化的模型,这些数据模 型是一系列在程序中处理数据相关的类。e m f 可以看作是e c l i p s e 上m d a 的一 个实现,使用了x m l l 0 和x m l 2 0 作为模型存储格式,目的在于自动化产生代 码。e m f 最初是作为m o f 规约的一个实现【2 3

温馨提示

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

评论

0/150

提交评论