(计算机软件与理论专业论文)基于cwm规范的异构平台抽取工具的元数据交换.pdf_第1页
(计算机软件与理论专业论文)基于cwm规范的异构平台抽取工具的元数据交换.pdf_第2页
(计算机软件与理论专业论文)基于cwm规范的异构平台抽取工具的元数据交换.pdf_第3页
(计算机软件与理论专业论文)基于cwm规范的异构平台抽取工具的元数据交换.pdf_第4页
(计算机软件与理论专业论文)基于cwm规范的异构平台抽取工具的元数据交换.pdf_第5页
已阅读5页,还剩90页未读 继续免费阅读

(计算机软件与理论专业论文)基于cwm规范的异构平台抽取工具的元数据交换.pdf.pdf 免费下载

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

文档简介

基。c w m 规范的异构平矗抽取t 具的元数据交换 基于c w m 规范的异构平台抽取工具的元数据交换 摘要 数据仓库系统是一个庞大复杂的系统。对于实现这样的系统,已经不足单单 一个应用工具就能够完成的任务。现实的数据仓库系统一般是多个开发工具共同 应用的结果。这样,同时产生的问题就是数据仓库系统因开发工具元数据不同而 难以实现上层的规则共享和数据交换。即随着数据仓库技术的广泛应用,元数据 的管理和交换问题同趋突现。因此,元数据是数据仓库环境的核心和灵魂,如何 管理和利用好数据仓库中的元数据,如何使数据仓库中的元数据能够在不同厂商 的工具之间顺利进行交换,成为了数据仓库项目成败的关键。 作者首先介绍了论文的研究背景、目的与所要完成的工作,然后结合具体应 用从实践的角度深入研究了论文的三大理论基础:模型驱动构架m d a 、公共仓 库元模型c w m 以及数据仓库模型。这其中,m d a 包涵了论文最终实践的变换 定义语言;c w m 解释了变换中目标结果集合的原理,代表了平台独立模型p i m ; 数据仓库模型解释了变换中源集合的原理,代表了平台相关模型p s m 。 基于上述研究,作者完成了以下实践:l 设计了变换定义语言的语法;2 剖 析了c w m 关系型包和转换包的组织结构;3 剖析了p o w e r m a r t 元模型 ( p o w e r m a r t d t d ) 的组织结构;4 建立了p s m 层到p i m 层的映射规则,即 p o w e r m a r t d t d 到c w m 关系型包和转换包的映射规则;5 遵循上述映射规则, 编程实现了e t l 规则到c w m 元数据库的导入工具。 文章的最后,作者给出了本工具的测试用例。测试结果证明,本文设计的映 射规则内容正确,工具运行情况良好,基本达到了预期目标。 关键词:元数据,数据仓库,m d a ,c w m ,e t l 北京邮电大学硕士学位论文 基于c w m 规范的异构1 z 台抽取工具的元数据交换 m e t a d a t ae x c h a n g eo f h e t e r o g e n e o u sp l a t f o r mt o o l b a s e do nc w m a b s t r a c t d a t aw a r e h o u s ei sa h u g ea n dc o m p l e xs y s t e m f o r s u c ha s y s t e m ,h a r d l yo n l ya d e v e l o p i n gt o o lc a nc a r r y i to u t g e n e r a l l y , ad a t aw a r e h o u s e s y s t e mi sd e v e l o p e db y m a n y t o o l s b u tt h i sr e s u l t si nap r o b l e mt h a ti ti sd i f f i c u l tt or e a l i z er u l e ss h a r ea n d d a t ae x c h a n g eb e c a u s ed i f f e r e n tt o o l sh a v ed i f f e r e n tm e t a d a t a b yt h eu s eo ft h ed a t a w a r e h o u s e ,t h ep r o b l e mo fm e t a d a t am a n a g e m e u ta n dm e t a d a t ai n t e r c h a n g e i s s t a c k i n go u t s i n c em e t a d a t ai st h eh e a r ta n ds o u lo f d a t aw a r e h o u s ee n v i r o n m e n t , h o wt om a n a g ea n du s et h em c t a d a t ao fd a t aw a r e h o u s ea n dh o wt oi n t e r c h a n g ei t b e t w e e nd i f f e r e n tp r o d u c t sa n dt o o l sa r et h ek e y s o f b u i l d i n g d a t aw a r e h o u s e i nt h i sp a p e r , f i r s to f a l l ,t h er e l a t e db a c k g r o u n d ,t h ep u r p o s ea n dt h ew o r kw i l l b ef i n i s h e da l ei n t r o d u c e d ,t h e n3m a j o rt h e o r e t i c a lf o u n d a t i o n so ft h ep a p e rs u c ha s m d a ,c w m a n dd wa r ef u r t h e ri n v e s t i g a t ei nt e r m so f p r a c t i c i n g a m o n gt h e m , m d ai n c l u d e st h el a n g u a g eo f v a r y i n gt h a tt h ep a p e r t a k e sf i n a l l y c w me x p l a i n st h e p r i n c i p l eo f t h et a r g e tw h i l ev a r y i n ga n dr e p r e s e n t sp i m d we x p l a i n st h ep r i n c i p l e o f t h es o u r c ew h i l e v a r y i n ga n dr e p r e s e n t sp s m b a s e do nt h er e s e a r c hm e n t i o n e da b o v e ,s o m ep r a c t i c e sa r ef i n i s h e da sf o l l o w s a tf i r s t ,t h eg r a m m a rw h i c hd e f i n et h el a n g u a g eo f v a r y i n ga r ed e s i g n e d s e c o n d l y , t h ef r a m e w o r ko fr e l a t i o n a lp a c k a g ea n dt r a n s f o r m a t i o np a c k a g ei nc w mi s a n a l y z e d t h i r d l y , t h ef r a m e w o r ko f p o w e r m a r t d t di sa n a l y z e d t h e nt h em a p p i n g r u l e sf r o mp s mt op i m ,t h a ti s ,t h er u l e sf r o mp o w e r m a r t d t dt oc w ma r es e tu p a t 1 a s t a c c o r d i n gt oa b o v e m e n t i o n e dr u l e s ,t h et 0 0 1f r o m e t lt oc w mi sr e a l i z e d 北京邮电大学硕士学位论文 基于c w m 舰范的异构平台抽取t 具的元数据交换 a tt h ee n do ft h ep a p e r , at e s te x a m p l ef o rt h et o o li sp r o v i d e d t h er e s u l to f t e s t p r o v e st h a tt h er u l e sm e n t i o n e da b o v ea r ec o r r e c t i ti si ns o u n dc o n d i t i o nf o rt o o lt o r u n ,h a v i n gr e a c h e d t h ee x p e c t e dt a r g e tb a s i c a l l y k e y w o r d s :m e t a d a t a ,d a t aw a r e h o u s e ,m d a ,c w m ,e t l 北京邮电大学硕士学位论文 皋于c w m 蜘范的异构平台抽取丁具的元数据交换 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究t 作及取得的研究成果。尽我 所知,除了文中特别加以标注雨i 致谢中所罗列的内容以外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的 材料。与我_ | 司工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了 谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:了! f 乱日期:2 川叠6 8 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 书。非保密论文注释:本学位论文不属于保密范围,适用本授权书。 本人签名:! ! i 钆一一 日期:加占堑弓r 导师签名:磊髭辔一 日期: ! ! ! 聋生一 北京邮电大学硕士学位论文 摧于c w m 规范的异构平台抽取工具的儿数据交换 第一章绪论 1 1 论文研究背景 元数据( m e t a d a t a ) 是描述数据的数据或是与数据有关的信息,通常由信息 结构的描述组成。元数据对不同厂商提供的不同软件系统和产品之间的集成起着 不可或缺的作用。异类软件产品、应用程序、报表工具和数据库系统之间要想进 行有效地互操作,必须对彼此间的信息结构具有共同的理解,因而也就需要一种 通用的语言来摘述和交换元数据。 数据仓库技术是继数据库技术之后为解决企业信息集成、支持数据挖掘、支 持企业决策而发展起来的新一代信息管理技术。数据仓库技术从逻辑上、物理上 分布的多个数据库系统中抽取数据、集成信息,并将集成后的信息存储在一个大 规模的数据仓库中。然而,这些数据库系统不仅结构和功能各异,而且种类繁多, 因此,数据仓库技术首先要解决多个异种数据库系统的集成问题。对于实现这样 一个庞大复杂的系统,已经不是单单一个应用工具就能够完成的任务。 元数据与数据仓库的关系极为密切,该领域中各类组成i s c ( i n f o r m a t i o n s u p p l yc h a i n ,信息供应链) 的组件( 如可操作数据存储、关系数据库、o l a p 服务器、分析工具、可视化工具和报表工具) 拥有丰富的元数据结构。这些组件 和元数据紧密相关,将元数据作为它们操作和服务的基础。 然而,对大部分商业软件产品和系统来说,很容易地共享元数据几乎是不可 能的。不同厂商生产的大多数产品拥有不同的元数据模型( 即元模型, m e t a m o d e l ) ,并使用其专用的接口发布元数据。对于试图集成这些软件产品、工 具和应用程序的厂商及消费者组织而言,这些差异使得他们在花费大量人力、物 力、财力的情况下,仍然难以完成集成的工作,投资回报率很低。 现实的数据仓库系统一般是多个开发工具共同应用的结果。这样,同时产生 的问题就是数据仓库系统因开发工具元数据不同而难以实现上层的规则共享和 数据交换。即随着数据仓库技术的广泛应用,元数据的管理和交换问题日趋突现。 因此,元数据是数据仓库环境的核心和灵魂,如何管理和利用好数据仓库中的元 数据,如何使数据仓库中的元数据能够在不同厂商的工具之间顺利进行交换,成 为了数据仓库项目成败的关键。 模型驱动架构( m o d e ld r i v e na r c h i t e c t u r e ,m d a ) 及相关规范是对象管理 组织( o b j e c tm a n a g e m e n to r g a n i z a i o n ,o m g ) 继对象管理体系结构( o b j e c t m a n a g e m e n ta r c h i t e c t u r e ,o m a ) 及公共对象请求代理体系结构( c o m m o no b j e c t 北京邮电大学硕士学位论文第1 页共9 5 页 基于c w m 规范的异构平台抽取工具的元数据交换 r e q u e s t b r o k e r a r c h i t e c t u r e ,c o r b a ) 规范之后,为解决分布、异构系统的集成 问题而提出的下一代解决方案。其中的公共仓库元模型( c o m m o nw a r e h o u s e m e t a m o d e l ,c w m ) 是模型驱动体系结构及开发方法在数据仓库领域的应用,是 在数据仓库和业务分析环境中进行元数据交换的标准。依据模型驱动体系结构、 开发方法及相关规范,能够很好地解决卜述数据仓库系统建设过程中所面临的问 题,完成整个数据仓库系统的建模及相关元数据的管理与交换。 正是在此背景下,作者开展了基于c w m 规范的异构平台抽取工具的元数据 交换研究。 1 2 论文解题 本文的题目为:基于c w m 规范的异构平台抽取工具的元数据交换。因此, 核心即为元数据交换。这里的抽取工具指的是i n f o r m a t i c a 公司的e t l ( e x t r a c t t r a n s f o r ml o a d ) 工具p o w e r m a n 。所谓的异构平台,一端就是指c w m 规范 中的关系型包( r e l a t i o n a l ) 和转换包( t r a n s f o r m a t i o n ) ,它代表了平台独立模型 ( p l a t f o r mi n d e p e n d e n tm o d e l ,p i m ) ;另一端则为p o w e r m a r t ,它代表了平台相 关模型( p l a t f o r ms p e c i f i cm o d e l ,p s m ) 。更严格地说,这两个异构平台应该称 之为元模型,即元元数据。 1 3 论文的目的 关于元数据交换,可以暂且粗略地分为两大类:如果交换双方都是遵从m o f ( m e t a - o b j e c tf a c i l i t y 元对象设施) 或基于m o f ( 如c w m ) 的元数据,那么交 换就变得简单了,x m l 元数据交换( x m lm e t a d a t ai n t e r c h a n g e ,x m i ) 解决的 正是此类问题;反之,问题则相对复杂化。本文所要解决的也正是针对后者。 我们知道p o w e r m a r t 元模型是不符合c w m 规范的,如果抽取工具换了其他 厂商,要将e t l 规则从p o w e r m a r t 中导出,再导入到新工具,实现元数据的乎 稳交换,并不是件容易的事情。试想,如果能在p o w e r m a r t 元模型和c w m 规范 之间建立某种映射,那么遵循此映射规则就可以实现p s m 层到p i m 层的元数据 交换。这样,当基于非c w m 规范的不同品牌工具交换元数据时,就可以按照这 个思路将他们的元模型分别和c w m 规范建立映射关系,把元数据导入到p i m 层的元数据库中,从而最终实现各自问的元数据交换。图卜1 展示了这个过程: 北京邮电大学 爱士学位论文第2 页共9 5 页 基于c w m 规范的异构平台抽取1 = 具的元数据交换 1 4 论文的工作 1 4 1 已有的准备 图1 1p s m p i m 为了实现上述目的,我们可以整理一下手边已有的资料。 p s m 层:i n f o r m a t i c a 公司目前公开了其e t l 工具p o w e r m a r t 的d t d ,它是 p o w e r m a r t 元模型的一种表示形式,整个e t l 规则( x m l 文档) 的语法正是由 此定义的,通过它可以剖析p o w e r m a r t 元模型的组织结构。 p i m 层:从o m g 的官方网站上可以下载到一个表示c w m 元模型的等价类, 它由三部分组成:u m l ,d t d ,s q l 。其中s q l 提供的是一批建表脚本,在s q l s e r v e r 中运行它可以得到“系列的t a b l e 。这些表的表结构也是c w m 元模 型的一种表示形式,和c w m 的u m l 、d t d 是等价的。既然表结构等价于元模 型,那么表中所存储的数据就应等价于元数据。我们正好可以将这些t a b l e 作 为导入p s m 层e t l 规则的元数据库。 1 4 2 主要工作 具备了以上条件,目标就很明确了。具体来说,一共要做两件事情:其一, 建立p s m 层到p i m 层的映射规则,针对本文来说,就是建立p o w e r m a r t 元模型 到c w m 关系型包和转换包的映射规则,这是元模型层面上的转换;其二,遵循 上述映射规则,编程实现e t l 规则到c w m 元数据库的导入工具,此为真正意 义上的元数据交换。二者中,前者应为工作的重点,后者只是一个代码实现工具 的过程。 北京邮电大学硕士学位论文第3 _ 贞共9 5 页 基于c w m 规范的异构平台抽取工具的y j 数据交换 要建立p o w e r m a r t 元模型到c w m 转换包的映射规则,自然须从它们各自元 模型的表示方式入手。前面提过,p s m 层我们已经有了p o w e r m a r t 的d t d ,当 然还可以由它推导出p o w e r m a r t 的u m l 等一系列相互等价的p o w e r m a r t 元模型 的表示形式;p i m 层,我们更是得到了一个相当完备的等价类( c w m 元模型的 u m l ,d t d ,s q l ) 。剩下的工作,就是要在这两个元模型的表示形式之间建立 映射规则。这个映射规则可以是p o w e r m a r td t d 直接到c w ms q l 的,也可以 是p o w e r m a r td t d 一一p o w e r m a r tu m l 一一c w ms q l ,甚至可以是 p o w e r m a r td t d p o w e r m a r tu m l c w m u m l c w m s q l 。不 管中间过程如何,总之是要在两个等价类之间映射出转换规则。当然,在这些思 路中,我们希望找出一条实现起来相对简单的途径。但有一点是不变的,映射规 则的终点必须是c w ms q l ( p i m 层元数据库) ,因为论文的最终目的是要将e t l 规则( p s m 层元数据) 导入到这个元数据库中。 接下来的问题就是采用何种表达方式来描述映射规则。从目前看,对象约束 语言( o b j e c tc o n s t r a i n tl a n g u a g e ,o c l ) 是一个相对不错的选择。尽管它并不 能由相关工具插入自动执行变换,但o c l 是用形式化语法描述的,可以用来表 达完整的查询操作,业务规则,包括动态触发规则,产生精确、无歧义、一致的 模型。事实上,目前还没有编写变换定义的标准语言,无论如何这个过程都要依 靠手工建立完成。换句话说,必要时我们不得不定义自己的变换定义语言。既然 如此,映射规则甚至可以用自然语言描述,只要能够做到足够的完备、精确、无 歧义。因为最终工具自动实现的并非这个映射规则,而是遵循它的元数据交换。 1 4 3 预计成果 依据上述映射规则编程实现工具,使得e t l 规则( p s m 层元数据) 能够顺 利导入c w m s q l ( p i m 层元数据库) ,并可进行增、删、改、查等数据库操作, 从而实现异构平台的元数据交换。有必要的话,还要做一些简单的测试工作,以 便将转换误差控制在定范围之内。 1 5 论文的结构 由于本文涉及内容繁多,为了对本文成果有一个清晰认识,作者将其中重点 的技术环节都做了简要介绍,并组成如下论文结构: 第二章介绍模型驱动架构m d a ,此为论文的理论基础之一。 主要内容有:m d a 的基本原理( 包括m d a 开发生命周期、变换步骤的自 动化、m d a 带来的好处以及m d a 组成部件) ;m d a 框架( 包括什么是模型、 北京邮电大学硕士学位论文第4 页菇9 5 页 基于c w m 规范的异构甲台抽取工具的兀数据交换 什么是变换、基本m d a 框架) ;定义自己的变换( 包括变换定义语言、变换规 则需求、变换规则表示法) 。 第三章介绍公共仓库元模型c w m ,此为论文的理论基础之二。 主要内容有:c w m 的重要观点、解决方案;c w m 体系结构;关系裂包 ( r e l a t i o n a l ) ;转换包( t r a n s f o r m a t i o n ) 。 第四章介绍数据仓库模型,此为论文的理论基础之三。 主要内容有:数据仓库的基本原理( 包括数据仓库的功能特征、数据仓库的 体系结构以及数据仓库建设的两条技术路线) ;e t l 元数据( 包括e t l 概述,重 点剖析e t l 工具p o w e r m a r t 的d t d 组织结构) 。 第五章完成e t l 规则到c w m 规范的异构平台元数据交换的实现,此为 论文的实践部分。 主要内容有:元模型层的映射规则( 用形式化语言完整地描述出p o w e r m a r t d t d 到c w m 关系型包及转换包之问的映射规则,并从语义上予以详细阐述) ; 元数据交换工具的生成( 依据元模型层的映射规则编程实现工具,使得e t l 规 则能够顺利导入c w ms q l ,并可进行增、删、改、查等数据库操作) ;基于一 个具体e t l 规则的测试( 用一个具体e t l 规则对上述元数据交换工具进行测试, 并生成测试结果,给出准确性报告) 。 第六章论文的总结,说明了个人工作以及今后有待完善的问题。 1 6 名词解释 本节给出了论文中一些新名词的解释。 o c l ( o b j e c tc o n s t r a i n tl a n g u a g e ,对象约束语言) :是一个u m l 查询和 表达语言,它作为u m l 标准的一个组成部分。它名字中的术语“约束”是历史 的残留,当时o c l 只是被用来说明u m l 模型的约束。目前,o c l 已是一个完 整的查询语言,它的表现力可以同s q l 媲美。 i s c ( i n f o r m a t i o ns u p p l yc h a i n ,信息供应链) :在某环境中,信息从其源 头( 即原始数据的提供者) 流出,经过一系列精化,最终产生信息产品( i n f o r m a t i o n p r o d u c t ) 的过程。当今业界成型的数据仓库流程,就是一个典型的信息供应链, 北京邮电大学硕士学位论文 第5 页共9 5 页 基十c w m 规范的异构平台抽取t 具的无数据交换 见图1 - 2 。 图i - 2 一个典型的i s c 北京邮电大学硕士学位论文第6 页共9 5 页 基于c w m 规范的异构平台抽取工具的元数据交换 第二章模型驱动架构 本章作为论文的理论基础之一,阐述了m d a 的基本原理、框架、模型及变 换。论文的核心工作就是完成一个从平台相关模型( p s m ) 到平台独立模型( p i m ) 的变换,这一系列的理论在本章中均有详细提及。在本章的最后一节,作者给出 了论文实践部分所用到的变换语言的详细定义。 2 1m d a 的基本原理 模型驱动架构( m o d e ld r i v e na r c h i t e c t u r e ,m d a ) 及相关规范是对象管理 组织( o b j e c tm a n a g e m e n to r g a n i z a i o n ,o m g ) 继对象管理体系结构( o b j e c t m a n a g e m e n t a r c h i t e c t u r e ,o m a ) 及公共对象请求代理体系结构( c o m m o no b j e c t r e q u e s tb r o k e r a r c h i t e c t u r e ,c o r b a ) 规范之后,为解决分布、异构系统的集成 问题而提出的下一代解决方案。m d a 是一个软件开发框架,其关键之处为,模 型在软件开发过程中扮演了非常重要的角色。在m d a 中,软件开发过程是由对 软件系统的建模行为驱动的【l 】。 2 1 1m d a 开发生命周期 图2 - 1 描述了m d a 开发生命周期,这和传统的生命周期看起来没有太大不 同。我们标出了相同的几个阶段。一个主要的不同在于开发阶段创建的组件的性 质。这些组件是形式化模型,也就是可以被计算机理解的模型。下面列出的3 种模型位于m d a 的核心。 平台独立模型 m d a 定义的第一类模型是具有高抽象层次、独立于任何实现技术的模型。 我们把这类模型叫做平台独立模型( p l a t f o r mi n d e p e n d e n tm o d e l ,p v i ) 。 p i m 描述支撑某些业务的软件系统。在p i m 中,对系统的建模视角是“系 统如何才能最好地支撑业务”。至于系统是用大型机上的关系数据库实现,还是 用e j b 应用服务器实现,这不是p i m 关心的内容。 平台相关模型 下一步,p i m 被变换为一个或多个平台相关模型( p l a t f o r ms p e c i f i cm o d e l , p s m ) 。p s m 是为某种特定实现技术量身定做的,在p s m 中,你使用这种技术 里可用的实现构造来描述系统。例如,e j bp s m 是用e j b 结构表述的系统模型。 北京邮电大学硕士学位论文 第7 页麸9 5 页 基于c w m 规范的异构平台抽取工具的元数据交换 它通常会包含e j b 特有的术语,比如“h o m ei n t e r f a c e ”、“e n t i t yb e a n ”、“s e s s i o n b e a n ”等等。关系数据库p s m 则包含“表”、“列”、“外键”、等术语。显然,p s m 只对了解相应平台的开发者有意义。 p i m 可以被变换成一个或多个p s m ,为每个特定的技术平台生成一个单独 的p s m 。今天许多系统跨越了好几种技术,因此一个p i m 对应于多个p s m 是很 常见的。 代码 开发的最后一步是把每个p s m 变换成代码。因为p s m 同相应技术密切相关, 所以这一变换相对较为直接。 m d a 定义了p i m 、p s m 和代码,还定义了它们之间的关系。我们应当创建 p i m ,然后把它变换成一个或多个p s m ,最后再变换为代码。把p i m 变换成一 个或多个p s m 是m d a 开发过程中最为复杂的一步。 p i m 、p s m 和代码表现为开发生命周期中不同阶段的工作。更重要的是,它 们表现了系统规约的不同抽象层次。能够把高层次的p i m 变换成低层次的p s m , 这提升了开发者工作的抽象层次,从而让开发者可以“少流汗,多办事”,以较 少的努力创建更复杂的系统。 北京邮电大学硕士学位论文第8 页共9 5 页 基于c w m 规范的异构平台抽取工具的元数据交换 图2 - 1m d a 软件开发生命周期 北京邮电丈学硕士学位论文第9 页菇9 5 页 基于c w m 圳范的异构平台抽取工具的元数据交换 2 1 2 变换步骤的自动化 m d a 过程看起来很像传统开发过程,这令人怀疑。但是,实际上有一个关 键的不同点:传统上,从模型到模型的变换,或者从模型到代码的变换,主要是 手工完成的。许多工具可以从模型生成一部分代码,但是往往止步于生成一些模 板代码,大部分的工作还是需要手工完成。 与此相反,m d a 变换总是由工具执行,如图2 2 所示。许多工具可以把p s m 变换成代码,这毫无新奇之处,因为p s m 已经和代码很接近了。这一变换并不 是那么令人激动。m d a 的创新之处是把p i m 到p s m 的变换也自动化了。这是 m d a 带来的显著好处。 在本文写作的时候,m d a 方法还非常新。现有工具还没有稳健到可以百分 之百地成功转换p i m 为p s m ,并把p s m 再转换到代码。开发者需要手工强化生 成p s m 和代码模型。但是,现有的工具可以从p i m 生成一个基本的可运行应用 程序,它提供了创建、改变系统中对象这样的基本功能。这使开发者可以获得开 发中p i m 的立即反馈,因为可以随时动态创建最终系统的基本原型。 图2 - 2 m d a 开发过程的3 个主要步骤 2 1 3m d a 带来的好处 应用m d a 会给我们改进软件开发过程带来以下好处 生产效率 在m d a 中,开发者的焦点转移到了p i m 的开发。所需的p s m 是通过变换 自动从p i m 生成的。当然,需要有人来确切定义这个交换,这是件困难的任务。 但是这样的变换只需要被定义一次,然后我们就可以在开发系统时多次应用这个 变换了。只有专家才能定义变换,而且需要付出很大的努力,但是回报也是丰厚 的。 大多数开发者将关注p i m 的开发。因为不必关注目标平台的细节,所以他 们将摆脱很多技术细节的困扰。这些技术细节会通过从p i m 的变换自动加入 北京邮电大学硕士学位论文第l o 页共9 5 页 基十c w m 规范的异构平台抽取t 具的元数据交换 p s m 。这就从两个方面提升了生产效率。 首先,p i m 开发者的工作量减少了,因为他不再需要设计和编写平台相关的 细节,这些细节已经由定义变换的人考虑好了。在p s m 和代码层次,需要写的 代码也少了很多,因为大量的代码已经从p i m 自动生成了。 其次,开发者可以把注意力转移到p l m ,这样就可以更关注如何解决所面对 的业务问题。这样一来,系统就会更好地吻合用户的需求。用户获得的功能增多 了,需要等待的时间却减少了。 可移植性 在m d a 中,可移植性是通过把开发焦点转移到p i m 而获得的。因为按照 定义,p i m 是跨平台的。同一个p i m 可以被自动变换成多个不同平台上的p s m 。 你在p i m 层次指定的所有东西都是完全可移植的。 可移植程度取决于我们所用的自动变换工具。肯定会出现大量支持流行平台 的工具,但是对不太流行的平台,你可能只能依赖支持插件式变换定义的工具, 并自己编写变换定义了。 对于未来的新技术和新平台,软件业界需要及时推出相应的变换。这样我们 才能快速把已有的p i m 陈酒装入技术的新瓶中,并部署该系统。 互操作性 我们还没拼出完整的m d a 图。图2 3 中,从一个p i m 生成的多个p s m 之 间可能会有联系。在m d a 中这些联系被称为桥接器( b r i d g e ) 。不同目标平台的 p s m 间不能直接联系。我们需要找出办法把一种平台的概念变换到另一种平台, 这就是互操作性。m d a 解决互操作性问题的方案是:不仅生成p s m ,还生成 p s m 之间的桥接器。 如果我们能够把一个p i m 变换为两个不同平台上的p s m ,那么我们也就有 了桥接两个p s m 的全部信息。我们知道一个p s m 中的每个元素是从p i m 中的 哪个元素变换而来,我们还知道p i m 中的这个元素对应于另一个p s m 中的哪个 元素。因此,我们可以推断出两个p i m 中元素的对应关系。此外,我们还知道 两个p i m 的所有平台相关技术细节( 否则我们就无法执行p i m 到p s m 的变换) , 所以我们就具备了生成两个p s m 间的桥接器的全部信息。 例如,如果某个p s m 是j a v a ( 代码) 模型,另一个p s m 是关系数据库模型, 那么对于p i n 中的一个元素c u s t o m e r ,我们知道哪个或哪些j a v a 类是由它变换 而来的,我们也知道哪个或哪些表是由它变换而来的,那么就很容易在j a v a - p s m 中的j a v a 对象和关系p s m 中的表之间建立桥接器了。为了从数据库中获取一个 对象,我们查询由c u s t o m e r 变换来的表,并根据获得的数据把j a v a p s m 中的类 北京邮电丈学硕士学位论文第1 1 页慕9 5 页 基于c w m 枷范的异构平台抽取工具的元数据交换 实例化。如果要存储对象,我们就将j a v a 对象中的数据存储到c u s t o m e r 变换得 到的表中。 工具不仅生成p s m ,还生成p s m 之间( 也可能是p s m 到其他平台) 的桥 接器,这样我们就实现了跨平台互操作性。 图2 - 3 桥接器 维护与文档 在m d a 生命周期中,开发者可以把注意力集中在p i m 上。p i m 抽象层次 比代码高,人们从p i m 生成p s m ,再从p s m 生成代码。模型是代码的精确表现, 因此p i m 起到了软件系统都需要的高层次文档的作用。 重大的不同之处在于,人们写完p i m 后不会将其丢弃。如果系统需要改动, 人们将通过修改p i m 并重新生成p s m 和代码来实现。在目前的实践中,被修改 的常常是p s m ,然后从p s m 再重新生成代码。但是好的工具应该能够维护p i m 和p s m 之间的关系,哪怕p s m 有所更改。对p s m 作出的改变应当反映到p i m 中,这样高层次文档就和代码保持了一致。 在m d a 方法中,高抽象层次的文档自然存在。在这个层次上我们还需要记 录p i m 无法表现的额外信息,比如开发p i m 时作出某种选择的理由。 北京邮电大学硕士学位论文 第1 2 页共9 5 页 基于c w m 规范的异构平台抽取工具的元数据交换 2 1 4m d a 组成部件 我们需要用什么来实现m d a 过程? 以下是m d a 框架的“建筑材料”: 高层次模型。用标准、精确定义的语言编写,一致而精确,并包含足够 的系统信息。 一种或多种标准、精确定义的语言。用来编写高层次模型。 “如何自动把p i m 变换到特定p s m ”的定义。在依照m d a 过程开发的 项目中会产生一些“家酿”的定义,但定义最好还是公有,甚至被标准化。最好 还可以让用户根据需要调整这些定义。 编写这些定义的语言。这种语言必须被变换工具解释执行,因此必须是 形式化语言。 能够执行变换定义的工具。最好这些工具还能让用户灵活按需调整变换 步骤。 能够执行p s m 到代码的变换工具。 2 2m d a 框架 上一节概述了m d a 的基本原理 框架包含一些以特定方式组合的元素, 2 2 1 什么是模型 本节介绍m d a 过程背后的框架。m d a 我们逐一说明【烈。 m d a 这个名字强调了:模型是m d a 的关注焦点。这里我们所说的模型同 软件开发相关。请注意,这并不局限于软件模型。当某个软件用来支持一项业务, 那么业务模型也同软件开发相关。 但是,我们使用“模型”( m o d e l ) 这个词时究竟说的是什么呢? 很难得出一 个足够一般的可以适合许多不同类型模型的定义。而且定义还不能太泛泛,这样 才能帮助我们制定模型间的自动变换规则。根据辞典中的定义,我们可以归纳出 “模型”具有以下共同特性: 模型总是现实中已存在的东西的抽象。 模型和被建模的东西是两回事,要么去除了细节,要么尺寸不同。 模型可用来指导创建现实中的事物。 模型总是以某种语言表述的。可能是u m l ,也可能就是日常的自然语言, 或者是某种编程语言。总之,我们能想到的任何语言都行。为了支持模型的自动 变换,我们需要对模型加一些限制,这样它们才能适合于m d a 。我们要求这些 北京邮电大学硕士学位论文第1 3 页共9 5 页 基于c w m 规范的异构平台抽取工具的元数据交换 模型必须是用精确定义的语言表述的。精确定义的语言具有精确定义的形式和含 义,可以由计算机自动解释。我们认为自然语言不是精确定义的,因为计算机无 法解释它们。因此,自然语言不适合用来表述m d a 框架中的自动变换规则。以 此为起点,我们可以给出如下定义: 模型是以精确定义的语言对系统( 或系统的一部分) 作出的描述。 精确定义的语言是具有精确定义的形式( 语法) 和含义( 语义) 的语言, 这样的语言适合计算机自动解释。 2 2 2 什么是变换 第2 1 1 节描述的m d a 过程展示了不同模型( p 订、p s m 、代码) 在m d a 框架中扮演的角色。变换工具以p i m 为输入,并把它变换成p s m 。另一个( 或 者同一个) 变换工具再把p s m 变换成代码。这些变换在m d a 开发过程中至关 重要。在图2 2 中,我们把变换工具表示成一个黑盒。它的输入是一个模型,输 出是另一个模型。 图2 - 4 变换工具内的变换定义 当我们开启变换工具的“黑盒”,观察其内部时,我们能够发现哪些元素同 执行变换有关。在工具中包含了一个定义,这个定义描述了模型是如何变换的。 我们把这个定义叫做变换定义( t r a n s f o r m a t i o nd e f i n i t i o n ) 。图2 - 4 显示了变换工 具内部结构。 请注意,变换本身之间也有差异。变换是依据模型及变换定义产生新模型的 过程。对于所有的输入模型,变换工具使用同一套变换定义。 为了让变换规约( t r a n s f o r m a t i o ns p e c i f i c a t i o n ) 可以反复应用而不必随源模 型而改变,变换规约建立了源语言构造和目标语言构造之间的联系。比如,我们 可以定义一个从u m l 到c 样的变换定义,这个定义描述了从某个( 或任一个) u m l 模型应当生成什么样的c 撑构造。 一一般而言,我们可以说变换定义包含了一系列的变换规则,这些规则是无歧 义的规约,规定了如何从一个模型( 或者它的一部分) 创建另一个模型。基于这 北京邮电大学硕士学位论文 第1 4 页共9 5 页 基于c w m 规范的异构平台抽取工具的兀数据交换 些知识,我们就可以定义“变换”、“变换规则”、“变换定义”了。 变换是按照变换定义从源模型到目标模型的自动生成。 变换定义是一组变换规则,这些规则共同描述了用源语言表述的模型如何 变换为用目标语言表述的模型。 变换规则是对源语言中一个( 或一些) 构造如何变换为目标语言中一个( 或一 些) 构造的描述。 为了让变换有实用价值,变换必须具备一些特性。最重要的特性是变换必须 保持目标模型的含义同源模型一致。当然,这局限在一定范围内:只有源模型和 目标模型都能够表达的含义才能够保持不变。例如,u m l 模型可以包含行为规 约,但e r 模型无法表示行为规约。即便如此,u m l 模型还是可以变换为e r 模 型,但是只有系统的结构特性被保持了。 2 2 3 基本m d a 框架 在前面的小节中,我们已经看到m d a 框架的主要元素:模型、p i m 、p s m 、 语言、变换、变换定义以及变换工具。这些工具以图2 5 所示的方式融入了基本 m d a 框架。虽然这些术语在前面的章节中我们已经定义过了,我们在这里还是 再回顾一遍这些元素以及它们的角色: 图2 - 5 基本m d a 框架 北京邮电大学硕士学位论文第1 5 页共9 5 页 基于c w m 规范的异构平台抽取工具的元数据交换 模型是系统的描述。 p i m 是平台独立模型,描述了系统,但不涉及最终实现平台的知识。 p s m 是平台相关模型,描述了系统,并且包含最终实现平台的全部知识。 模型是用精确定义的语言表述的。 变换定义描述了源语言表述的模型如何变换到目标语言表述的模型。 变换工具按照变换定义为特定源模型执行变换。 从开发者的角度看,p s m 和p i m 是最重要的元素。开发者把注意力集中在 开发p i m 上,在高抽象层次描述软件系统。然后,选择一种或多种工具来 执行对p i m 的变换。这些工具是按照特定的变换定义开发的。变换的结果是 p s m ,这个p s m 再被变换成代码。 请注意,图2 - 5 只显示了一个p s m ,但是一个p i m 常常可以生成多个p s m , 而且还会生成它们之间可能的桥接器。图中只有一个从p i m 到p s m 的变换,但 另一个变换从p s m 到代码,也是必要的。 2 3 定义自己的变换 本节解释如何定义变换。并非所有m d a 运用者都会定义他们自己的变换, 很多变换会包涵在m d a 工具中。但知道如何定义变换依然很有好处,尤其是这 样可以让你更好地选择工具。本节可作为论文的实践基础之一,第五章实践部分 所用到的变换规则,正是基于下文所定义的语法表示。 2 3 1 引子 从”个模型生成另一个模型,你需要什么信息? 你必须把源

温馨提示

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

最新文档

评论

0/150

提交评论