已阅读5页,还剩46页未读, 继续免费阅读
(计算机应用技术专业论文)快速开发平台数据建模的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 随着m d a 技术的流行和不断完善,越来越多的公司推出基于m d a 的快速 开发平台,通过用户设计的模型和平台已有的框架,可以直接生成可执行的程序 代码。本文围绕此类开发平台的数据建模,开展了如下三个方面的工作: 分析了软件过程所产生的元数据及其作用,提出采用仓库模式管理元数据的 方法和需求,设计并实现了基于j 2 e e 平台的元数据仓库。它的作用有:统一管 理用户设计的软件元模型、为快速开发平台的其他子系统提供元数据的信息服 务。该元数据仓库采用开放的协议m o f 和x m i ,它本身也可以作为独立的系统 运行,通过w e b s e r v i e e 对外提供查询,发布,更新元数据等服务。 在元数据仓库的基础上,结合s d o 的概念,提出了对象结构图框架( o g f ) , 为快速开发平台提供一致的、简单的数据访问方式。o g f 采用x p a t h 的访问方 式和c o m m a n d 模式的数据操作方式。论文给出了o g f 的各个模块作用和实现过 程。接着分析用户界面与元数据的对应关系,提出了统一u i 框架( u u f ) ,u u f 的目的在于为开发人员自动生成数据处理的用户界面,提高开发人员的效率。另 外u u f 为不同客户端的用户界面提供了统一的描述方法。 在此基础上,设计并实现了代码自动生成系统,此系统的功能在于根据用户 设计的u m l 模型生成基于o g f 和u u f 的可执行的程序源码,它采用了j e t 技 术和j m e r g e 技术。实验证明了该系统能够把u m l 模型映射到关系数据库。 以上三个部分分别实现了数据模型管理的元数据仓库、操纵数据模型的框 架、生成数据模型运行代码的组件,都是快速开发平台必不可少的基础组件,这 些系统全部基于开源组件,大大降低了快速开发平台开发的成本,具有较大的经 济效应。 关键词:元数据元数据对象设施模型驱动架构快速应用开发 a b s t r a c t w i t ht h ep o p u l a r i t yo fm d at e c h n o l o g y , m o r ea n dm o r ec o m p a n i e sh a v e d e v e l o p e dr a dp l a t f o r m sb a s e do nm d a i t c a l lg e n e r a t ee x e c u t a b l es o n r c cc o d e s d i r e c t l yw i t ht h eu s e rm o d e l sa n dp r e d e f i n e df r a m e w o r k s i tr a i s e st h ed e v e l o p m e n t e f f i c i e n c ya n di m p r o v e st h es o f t w a r eq u a l i t y t h e n ,t h ed a t am o d e lm e t h o d so fs u c h p a d p l a t f o r ma l ed i s c u s s e df r o mt h r e ed i f f e r e n ta s p e c t s f i r s t l y , t h em e t a d a t aa n di t sf u n c t i o ni nt h es o f t w a r ed e v e l o p m e n tp r o c e s sa r s a n a l y z e d t h e n , t h em e t h o dm a tu s i n gp a t t e r no ft h em e t a d a t ar e p o s i t o r yt om a n a g e m e t a d a t ai sp r o p o s e d , a n dt h er e q u i r e m e n t st oc o n s t r u c ts u c ham e t a d a t ar e p o s i t o r y a r ee x p l a i n e d t h em e t a d a t ar e p o s i t o r y sf u n c t i o n si n c l u d e :m a n a g i n gt h em e t a m o d e l d e s i g n e db yu s e ri nac o n s i s t e n tw a y , p r o v i d i n gm e t a d a t ai n f o r m m i o ns e r v i c e sf o r s u b s y s t e mo ft h er a dp l a t f o r m t h em e t a d a t ar e p o s i t o r ya d o p t sm o fa n dx m i s p e c i f i c a t i o nt os h a r em e t a d a t ai nv a r i o u ss y s t e m s a sas t a n d a l o n es y s t e m ,i tc a na c t a saw e b s e r v i c et oq u e r y , p u b l i s ha n du p d a t em e t a d a t ae t c s e c o n d l y , a no b j e c tg r a p hf r a m e w o r k ( o g f ) i n t e g r a t e dw i t hs d oc o n c e p ti sp u t f o r w a r d t h eo g fo f f e r sac o n s i s t e n ta n ds i m p l ed a t aa c c e s sm e t h o d i tu s e sad a t a a c c e s sm e t h o dg r o u n do nx p a t ha n dad a t ao p e r a t i o nm e t h o db a s e do nc o m m a n d p a g e m t h e n ,t h ef r a m e w o r ka n di t si m p l e m e n td e t a i la r ee x p l a i n e d a n da n o t h e r f r a m e w o r kn a m e du n i f i e du if r a m e w o r ki sp r o p o s e d , w h i c ha i m st og e n e r a t et h eu i a u t o m a t i c a l l ya n dd e s c r i b ev a r i o u sc l i e n t s u ii nau n i f i e dw a y i ti m p r o v e st h e e f f i c i e n c yo fd e v e l o p e r f i n a l l y , ac o d e sg e n e r a t i o ns y s t e mw a sd e s i g n e da n di m p l e m e n t e d i tu s e sj e t a n dj m e r g et e c h n o l o g y a c c o r d i n gt ou m lm o d e l sd e s i g n e db yu s e r , t h es y s t e mc a n g e n e r a t et h ee x e c u t a b l ec o d e sb a s e do no g f a n du u f e x p e r i m e n t sp r o v et h a ti tc a n m a p au m lm o d e lt or a t i o n a ld a t a b a s e a sa b o v e ,t h et h r e ep a r t si m p l e m e n tam e t a d a t ar e p o s i t o r yf o rm a n a g i n gd a t a m o d e l s ,t w of r a m e w o r k sf o rm a n i p u l a t i n gd a t am o d e l sa n dac o d e sg e n e r a t i o ns y s t e m s e p a r a t e l y 1 1 1 e yc o n s t r u c tt h ei n f r a s t r u c t u r eo far a dp l a t f o r m t h e s es y s t e m sa r e b a s e do nt h eo p e ns o u r c ec o m p o n e n t s a sar e s u l kt h ec o s to ft h er a d p l a t f o r mw a s m u c hd e c r e a s e d k e yw o r d s :m e t a d a t a , m o f , m d a ,p a d - 2 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得苤洼盘堂或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:彳琢灼 签字日期:如6 年2 月2 6 日 学位论文版权使用授权书 本学位论文作者完全了解鑫洼盘堂有关保留、使用学位论文的规定。 特授权苤壅盘鲎可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:? 襄事缈丙 导师签名: 签字日期:a ,6 年二月2 参日签字日期:a 厕年,月彳日 第一章绪论 1 1 背景 第一章绪论 随着i t 技术的发展,许多企业使用i t 技术来提高生产率和管理水平,越 来越多的企业的正常运作依赖于软件,而开发这些软件的i t 经理人和企业家们 面i 晦着大挑战。众所周知建立这些系统需要高水平的程序员从事艰难琐碎的工 作。由于高水平的软件开发者目前是昂贵的人力成本,因此企业软件开发项目采 用“人海战术”的方案代价高昂【1 】。另外,许多大型的企业应用软件项目往往以 失败告终。因此,如何提高企业应用的开发效率和软件质量一直是业界研究的熟 点之一。诸如应用服务器等中间件在企业的应用大大降低了企业应用开发的复杂 程度【2 】o 中间件屏蔽了底层操作系统和数据库系统的复杂性、异构性p 】,为企业 应用的开发建立了良好的基础设施,解决了诸如远程通讯、事务管理、数据库操 作等共性问题【”,应用开发人员不用再为这些共性的问题编制程序代码,而是把 精力集中到特定应用的逻辑上。但是企业的应用仍然面临着开发周期长、开发成 本高等现实的困难,而且随着需求的变化,应用适应能力差,很多已经部署的应 用升级困难,面临被淘汰的命运。 如何提高软件开发效率和开发质量,也是软件工程的难题。纵观软件工程发 展,编程工具的主体编程语言也经历四个阶段,第一代是机器语言,第二代是汇 编语言,第三代是高级语言,第四代是模型语言。第四代的还处于一种研究状态, 还没有开始大规模应用,基于模型语言的开发技术也被称m d a 1 】( m o d e ld r i v e n a r c h i t e c t u r e ) 。 为了提高企业应用开发的效率和降低风险,已有多家公司己开发出类似的快 速开发平台,其中比较好的是,北京思维加速的j u s t e p t 4 1 、上海华丹的 c h a r i s m a n 、上海普元的e o s “。j u s t e pb u s i n e s s 3 0 提出了业务模型驱动 ( b m d ) 的思想【4 】,这一思想要求使用业务建模的开发模式,并将建模的结果业 务模型应用资源作为管理软件开发的主体产品,在b m d 模式下,用户是以业务 模型应用资源为主要的目标对象,进行信息系统的设计、构造、发布、集成、维 护和管理【4 j 。华丹公司也提出了基于业务模型驱动的开发方法,但是采用华丹的 c h a r i s m a 开发的产品需运行在华丹的平台,这使得开发者被限制于华丹平台, 是其不足之处。c h a r i s m a 产品是针对企业应用中报表繁多,编程繁杂的问题, 第一章绪论 提出的报表解决方案,使用c h a r i s m a 的产品可以快速构建基于w e b 的报表【5 】, 可以说c h a r i s m a 主要解决的企业数据显示界面自动化生成的问题。e o s 的产 品是一个工作流【6 】,但是它针对不同企业应用领域,预设了不同场景的模版,简 化了用户设计工作流的过程1 7 j 。 在综合和比较多家公司开发平台成品后,基于新型的开发技术m d a 和成熟 的开发平台j 2 e e l 2 ,某公司也提出了快速开发平台的开发计划。对多个公司的 产品分析得知,企业应用软件包含两个重要方面数据和流程,本文研究得是快速 开发平台的数据建模方法和如何为快速开发平台提供一致的、简单的操纵数据的 框架。 数据建模的主要研究对象是元数据,元数据是对数据的抽象描述。元数据的 研究已有几十年的历史,但主要研究是聚中图书馆和地理信息化领域【s 】。随着软 件开发技术的发展,软件开发过程的元数据建模变得越来越重要,9 4 年o m g 制 定有关元数据建模的标准m o f l 9 1 和c w m 【l “,随后j c p 制定了j a v a 语言操纵元 数据的标准j m i t “1 ,s u n 公司跟着推出了基于j m i 的开源项目m d r ”。同时, e c l i p s e 组织也提出了自己的元数据建模核心e c o r e ”】,e c o r e 可以说是m o f 的 简化版【1 2 】。另外,e c l i p s e 组织也推出了基于e c o r e 模型的开源项目e m f 1 3 】,涉 及许多数据建模的工具和技术,本文的三个子系统即是建立在这个开源项目的基 础上。 r e p o s i t o r y 主要是用于管理元数据的,它的发展已有三十多年历史了,7 0 年 代,它集中在数据管理和数据标准化阶段,8 0 年代,随着c a s e 工具及相关方 法学的发展,仓库用来存储应用系统开发周期中产生的信息,这些信息也可以看 作元数据。进入9 0 年代以来,由于分布式系统的流行,元数据的管理更加复杂, 对于元数据管理,人们开始制定相关的工业标准,o m g9 4 年发布元数据对象设 施的标准m o f l 9 1 ,随后研究人员开始尝试结合r e p o s i t o r y 和m o f 来管理元数据, s r i d h a ri y e n g a r 于9 8 年提出一种应用u m l 和m o f ,在异构的分布式系统,建 立统一元数据仓库( m e t a d a t ar e p o s i t o r y ) 的框架【1 ”。p e t rh n 6 t 3 ,n k a , m i c h a lp i s e 在 他们的文章【l5 】中也提出了比较了基于m o f 的元数据仓库和配置型元数据仓库 库,得出了基于m o f 的元数据仓库是将来的发展方向。f r a n c i s c or u 幺a u r o r a v i z c a i n o l l 6 魄出运用m o f 和x m i 对软件过程进行建模的方法,且该方法将是未 来软件过程建模的方向之所在。目前比较流行的元数据仓库产品如微软的 m i c r o s o f tr e p o s i t o r y ,主要是用于数据仓库和数据分析方面。少有基于软件构造 方面,如何管理,部署,提取和使用模型的元数据的成为软件构造领域的难题, 本文结合m o f , x m i 1 7 1 等相关标准和e m f 等开源项目,实现了基本的元数据仓 库功能,简化了软件构造过程中元数据的管理,部署,提取和使用的难度,对应 第一章绪论 用程序提供了一种以对象的访问方式使用元数据的方法。 1 2 本文主要工作 分析软件开发过程,研究m d a 技术在企业应用开发中的作用,为快速开发 平台架构的设计提供理论上的支持。 研究与数据建模相关的元数据模型表示的各种协议,比较协议的开源实现的 项目m d r 和e m f ,结合开源项目e m f 和现行的标准m o f 和x m i ,实现基于 j 2 e e 平台的元数据仓库。 结合i b m 公司和b e a 公司的s d o 1 8 1 思想和已实现的元数据仓库,提出并实 现对象结构图框架( o g f ) 和统一用户界面框架( u u f ) ,o g f 为了应用程序提供一 致的、简单的数据访问方式。u u f 为应用程序提供预定义的、可定制的u i 界面。 结合e m f 的j e t 1 3 和j m e r g e 1 3 技术,以及目前流行的o rm a p p i n g 1 9 】 工具h i b e r n a t e ,实现从u m l 图表示的模型到关系数据库的映射( m rm a p p i n g ) 的代码自动生成系统。 1 3 本文的组织结构 第一章:绪论,叙述企用应用软件开发过程中所遇到的问题,为了解决这些 问题,学术界提出m d a 的想法,企业界也提出快速开发平台的概念。介绍快速 开发的理论及其相关的协议和标准。 第二章:快速开发平台与数据建模,介绍某公司快速开发平台的概念和整体 结构,以及数据建模在快速开发平台中的重要作用。 第三章:元数据仓库的设计与实现,这一章先是介绍软件开发过程的元数据, 为了统一管理和利用这些元数据,提出使用元数据仓库管理元数据的方法,分析 采用该方法管理元数据的四点要求,最后介绍所实现的元数据仓库的模块功能和 p a c k a g e 的结构。 第四章:对象结构图框架与统一用户界面框架。介绍开发平台的o g f 和 u u f ,o g f 是为了解决访问不同数据源的问题而提出的。文章详细说明了o g f 的各个组成模块及其实现细节。u u f 可以根据数据的元数据生成数据处理的界 面,根据j a v a 的反射机制,u u f 也可以根据数据在o g f 的结构动态生成处理数 据的界面。 第五章:代码自动生成系统,说明系统的作用和应用范围,用一个m r m a p p i n g 的例子来说明系统工作的流程并证明此系统的可行性,同时介绍了该流 第一章绪论 程中所用到的j c t 技术和j l v l e r g e 技术。 第六章:结论与展望,对前面所做工作总结,提出三个系统的优点和不足之 处,并指出快速开发平台未来的发展方向。 第二章快速开发平台与数据建模 第二章快速开发平台与数据建模 2 1 企业应用开发的三种模式 2 1 1 一般模式 大部分软件企业使用此模式,遵循相对比较成熟的软件过程。需求分析一设 计一实现【2 0 】,中间采用r u p 中的反复迭代的过程【2 1 】。在此过程中采用u m l 面 向对象的建模工具和其他项目管理软件,对企业应用进行建模、控制对需求的把 握和管理、指导企业框架代码的生成等等口o l 。 图2 1 一般开发过程对需求的“响应迟钝” 在企业应用领域,用户的需求灵活多变,而且复杂,难于用统一的、规范的、 精确的语言描述。有些时候,用户本身也无法准确描述自己的需求,而且需求又 是在不断变化的。企业为适应市场的竞争,调整需求是不可避免的。这样,在企 业应用软件开发的过程中,需求从用户到系统分析员,到程序员的实现,关于需 求的信息不断地“失真”,软件的开发必然经历反复迭代的过程,不断对企业的 需求进行反馈和校正1 2 2 】( 如图2 - 1 所示) ,得到符合用户需求的软件。这种模式 的企业应用开发周期长,成本高自然是不可避免的。 2 1 2 通用业务模型模式 此开发模式是建立在对企业的运营有着深刻理解的基础上,对企业的运转能 够提出标准化的、通用的业务模式,对每一个业务有能够穷举出近似所有的可能 第二章快速开发平台与数据建模 性。例如库房管理的模式,s a p 能够实现几十种之多。这种开发模式一般分两个 阶段:一是领域分析和领域实现阶段,产生的软件能够覆盖领域内绝大部分需求 2 0 1 。- - 是- - 次开发阶段,针对特定的需求定制特定的业务。这种开发模式对软件 企业的要求很高,一般厂商难于做到。 2 1 3 m d a 模式 m d a ( m o d e ld r i v e na r c h i t e c t u r e ) 是o m g 组织近年来极力推行的开发模式 【2 3 l 。程序设计语言的发展经历了从汇编程序设计语言到低级程序设计语言,再到 高级程序设计语言的阶段。m d a 是高级程序设计语言的进一步发展。m d a 的 基本思想是利用模型( m o d e l ) 来代替程序设计语言【2 4 】。由于模型相比程序设计 语言更抽象、更形式化、更直观,通过模型来对用户的需求建模,再模型( m o d e ) 直接转换为高级程序设计语言的代码,避免了从用户需求到程序设计和实现过程 中的“失真”【2 5 】,大大提升了开发过程对需求的响应速度,提高了企业应用的开 发速度,降低了企业的开发成本。 矢:茸- - - - - - - + 图2 - 2m d a 对需求的“响应灵敏” 但m d a 本身是一个复杂的体系,o m g 推荐的建模语言u m l 要达到替代 高级程序设计语言的目标还很遥远,目前提出的可执行的u m l 语言【2 “,本身存 在许多的不足。而且u m l 的对象图与程序世界中的对象亦无法一一对应,眦 活动图表达程序流程的能力也不够,虽然在u m l 2 0 中,对u m l 语言做了很多 扩充,使其更好的支持m d a ,但是从u m l 图直接转换为整个应用程序的实现 还存在很多困难 2 6 1 。但随着j 2 e e 应的日益成熟,基于m d a 的代码生成的开发 工具将会非常流行,就像第三代的编程语言一样。当开发组织在寻找更好的、更 高生产率的支抚育新旧业务集成的开发方法时,他们中的大部分都会使用 m d a 2 7 。 第二章快速开发平台与数据建模 2 2 某公司快速开发平台简介 本文的所开发的三个系统都是都为快速开发平台服务,因此对于开发平 的整体架构作一下了解,对于理解文章的三个系统非常有必要。以下是此开发平 台的简介。 2 2 1 快速开发平台原理 在m d a 中,利用模型来产生全部的程序代码面临着很多的困难。尤其在企 业应用中,除了订单管理等功能性需求以外。还有很多非功能性需求,如安全、 日志、事务、远程访问口8 肄。这些非功能性需求很难用模型来抽象表示。 一种折衷的方案是,建立企业的应用的框架,例如最底层的j 2 e ec o n t a i n e r , 其上是各种自开发的框架,如u if r a m e w o r k ,o rm a p p i n gf r a m e w o r k ,w o r k f l o w e n g i n e 等,这些组成了企业应用的基础设施,已经是预制的软件系统。只需把用 户需求( 用模型描述) ,“翻译”为符合框架协议的组件,并集成到框架中,即完 成了企业应用的开发【2 ”。非功能性需求跨越了系统的多个层面和组件,可以利用 a o p t 28 】的机制,把这些方面的代码组装到系统的合适的位置【3 0 】。如下图所示。 形式化的模型比高级程序语言更抽象,也更贴近用户 3 1 1 ,在需求分析的过程也是 对企业建模的过程,而这个模型是可以直接转换为最终代码的,应用的开发效率 自然大大得到提高,适应需求变化的能够也大大增强。 d e l a l o ,r & a m b t i n gt f m t i n g 盎盘 :电 n 框架缎件 u 待集成发组件w e 押“缸a 带c l 3 模墨 图2 - 3 快速开发基本原理【3 2 1 快速开发有两个重要的基础:一是高度可复用的灵活的框架:它构成了企业 应用运行时的平台,是基础设施,j 2 e ec o n t a i n e r 已经为企业的应用建立很多 第二章快速开发平台与数据建模 基础设施,但是还远远不能达到快速开发的要求,还需要在其上开发更多的框架。 二是易于标准化和形式化的待集成组件:框架基于对企业开发过程本质的理解, 已经集成了部分企业应用的组件,这部分是企业应用中稳定和共用的部分,另外 一部分组件是后期通过模型生成和转换而来,然后集成或者组装到系统中去的。 这两个基础概括一句话就是:把通用的部分组件抽象为框架,剩下的可变的 部分组件易于标准化和形式化( 模型化) 。最终达到的效果是: 企业应用= 框架+ 模型 2 2 2 以w o r k f l o we n g i n e 为中心 企业应用程序一般包括对结点业务处理和业务处理的流程两部分, o b j e c t g r a p hf r a m e w o r k , 和u n i f i e du if r a m e w o r k 结合,辅助用户完成企业流程中某个节 点的业务处理。工作流引擎把所有的这些节点连接起来,最终完成企业整个业务 链的处理。工作流引擎负责流程的解释,以及流程生命周期的管理:实例化、激 活、暂停、终止、能够给用户分配任务( a s s i g nt a s k ) 等等口”。工作流引擎是与 其它框架密切联系的。 图2 - 4 以工作流引擎为中心的体系结构 如图2 - 4 所示,整个体系结构是建立在o g f 的基础上,系统的其它组件都 是直接或者间接的数据消费者。w o r k f l o we n g i n e 起到了连接系统各个部分的作 用。 第二章快速开发平台与数据建模 2 2 3 快速开发平台数据建模的重要性 快速开发平台有两个核心,一个就是数据建模。另一个是流程建模,一个企 业应用可以看作对企业数据的处理和处理的流程两部分,本文关注企业数据的处 理过程。企业应用数据处理的重要性体现在:数据的存储、检索、展现、传递、 界面操作逻辑、后台业务逻辑、安全策略等各种企业应用,无一不与数据息息相 关。数据在不同的情况下有不同表现形式。在客户端,它表现为用户界面,如 h t m l ,在程序处理时可能是一个对象,在数据库中则是一张张的表。如何把表现 形式如此不同的数据统一起来? 其实不管是h t m l ,或者程序运行时期的对象,数 据库的表它们都有着相同的结构,这就是元数据,o g f , 删f :o rm a p p i n g 的工 具只是展现数据在不同场景下的表现形式。 数据模型用于描述企业数据的结构,即o g f 的元数据。现有的数据建模的 工具很多:u m l c l a s s d i a g r a m 、x m l d t d 、x m ls c h e m a 和a n n o t a t e dj a v a b e a n s ( j a v a b e a n s 本身是对数据的一种形式化描述) 等,它们对数据的描述基本是等 价的。在e m f 的开源项目中,采用e c o r e 对元数据进行描述。通过e c o r e 统 一了各种元数据的表达方式,各类元数据的格式可以通过e c o r e 相互转换。例如, 通过u m lm o d e l 得到相应的x m ls c h e m a ,反之亦然。如图2 5 所示。 9 梦 蓦多( 三) l 曰 图2 - 5 核心模型与其输入源 1 2 1 在快速开发平台中,采用以u m lc l a s sd i a g r a m 为主的图形化表达方式,图 形对应的b u s i n e s sm o d e l 基于e c o r em o d e l ,最终建立企业的数据模型。 数据模型可以通过代码生成器生成系统的多种组件。在u i 层,自动生成数 据处理晃面,支持复杂对象的增加、删除、修改、查找操作,及其相应的操作逻 辑,输入验证器。在实体层,生成相应的j a v a b e a n s 。同时,还有支持与数据库 同步的e j b 及其相关的部署描述符,还可以是采用其它o g 方案的对象及其配 置文件。在持续层,相关的x m ls c h e m a 和关系数据库的s q l 语言已经产生, 第二章快速开发平台与数据建模 可以直接创建系统的数据库。所有这些数据来源与数据模型的组件或者脚本,都 在逻辑上都保持了一致。 匪(add,deleteq u e r y , u 目j a v abeans屋lk,tj,ik, , il i 。一i 幽ii := :i 匡圈固 夏匿一 图2 - 6 数据模型及其生成的组件 胁黼业 第三章元数据仓库的设计与实现 第三章元数据仓库的设计与实现 3 1 元数据仓库的需求 3 1 1 软件开发过程的中元数据 元数据最抽象的定义为:d a t aa b o u td a t a ( 描述数据的数据) ,这个概念非常 广,是一种递归的定义畔】。在软件开发领域,元数据被定义为:在程序中不是被 加工的对象,而是通过其值的改变来改变程序的行为的数据。它在运行过程中起 着以解释方式控制程序行为的作用。在程序的不同位置配置不同值的元数据,就 可以得到与原来等价的程序行为1 3 ”。通过元数据可以更高层次抽象所设计的软 件。这可以提高系统的灵活性,扩展性和可维护性,而且使得架构更加清晰。但 是从下往上看,系统就显得复杂了,因此要把握好抽象的度。在软件设计过程中, 代表数据或存储数据的应用程序和数据库结构可以概括为开发和设计人员能够 理解的元数据。表由对象派生出来的,而对象又由类派生。在元数据中有多个抽 象概念级别。可以描述一个数据实例,然后对该描述本身进行描述,接着再对后 一个描述再描述,这样不断重复,宜到达到某个实际限度而无法继续描述为止【3 “。 通常情况下,软件开发中使用的元数据描述可扩展为二至三级的抽象概念。比如 ”l o a nt a b l e ”数据实例可以描述为数据库表名。数据库表又可以描述为数据库表 对象。最后,数据库表对象可以用一个抽象类描述,该抽象类确定所有派生对象 都必须符合的固定特征集合。 3 1 2 构建元数据仓库的原因 在分布式的企业应用软件开发的过程中,如数据库的表结构,j a v a b e a n s , e j b ,x m l 文档结构,j a v a 类文件都可以看作元数据信息。由于元数据信息表示 多种多样,并且分布在系统的各部分,而且有着各种各样的存储方式,格式也不 一样,程序对元数据的解释也不一样,比如根据j 2 e e 的规范,每一个e j b 都有 其相应的元数据信息描述,就是相应的e j b x m l 文件,j 2 e e 服务器根据相应的 e j b x m l 文件为相应的e j b 配置安全,事务,缓冲等服务。又比如j a v a 类的c l a s s 文件,这里面的元数据信息是由j v m 解释和执行的。从数据库的表结构到j a v a 的c l a s s 文件,元数据信息表示形式差别很大。如何统一它们的信息结构? 如何 在系统中对外提供一致接口,使得外部的应用程序可以更好地使用元数据信息? 第三章元数据仓库的设计与实现 显然为了统一元数据信息,需要一致的,集中的元数据信息管理中心。另一方面 如何在软件开发过程中对元数据建模,读写,发布元数据,提取元数据也需要一 种集中的管理方式。综上所述,原因总要有三点: 夺为各种各样的元数据提供一致的存储的方式,为不同系统交换元数据提 供便利。 夺为快速开发平台而言提问简单一致的访问元数据的接口,减少开发平台 系统设计复杂度。 夺元数据需要一个集中式的管理方式。 3 1 3 元数据仓库的四点要求 学术界对于统一元数据的研究也已经二十多年了,并建立了相应的标准,如 m o f 【7 1 m 【m 】等,由于元数据信息涉及软件进程的方方面面,要把它们都统一 起来是极其困难的,通过对元数据协议的分析和公司多名工程师多软件开发过程 的经验,结合了四点要求: 一是要支持国际标准,主要有m o f 和x m i 。对于j 2 e e 平台而言,采用m o f 标准,比采用属性文件等描述元数据的方式,更易于开发,更具可扩展性,而且 符合o m g 的标准。更进一步而言,对于越来越成为构建分布式系统的主流开发 方法m d a 而言,采用m o f 标准开发的元模型和信息库,非常容易就可以转为 m d a 的模型【1 6 l 。将来易于扩展。 二是要采用对象访问方式,对于j a v a 平台而言,由于j a v a 是一种纯面向对 象的语言,显然对象是j a v a 程序在运行期可以访问的最直接最简单的方式。 三是支持分布式系统和异构系统。目前的系统主要是基于j a v a 平台的,但 是为了将来可扩展性,对于元数据仓库这种服务,显然要求支持异构的系统。对 于非j a v a 平台,提供w e bs e r v i c e 服务,可以提供x m i 格式的元数据信息。 四是支持多种文件格式的元数据信息,x m i 格式,u m l 图形,x m l s c h e m a 格式,要最大程度上整合原有的系统。 3 2 元数据仓库的基础 3 2 1 m o f 简介 m o f 是o m g 组织发布的关于元数据的标准,该组织的目的在于建立工业 标准和为应用程序开发提供统一的对象管理的规范,特别在为分布式的异构环境 的基于对象的软件的重用性、轻便性、互用性和交互性提供规范f 1 8 】。o m g 对 第三章元数据仓库的设计与实现 m o f 的定义是:“m o f 定义一种抽象语言和框架用于说明,构建和管理与技术 无关的元模型1 9 】。”这句话相当抽象,难于理解,简单而言,u m l 这种建模语言 的模型可以用m o f 来描述,甚至m o f 模型也可以用m o f 自身来描述。m o f 的另一个功能是定义一个框架用于实现持有元数据对象的仓库。对于任何一个模 型都有其元模型,比如张三是一名工人,那张三作为一个模型,工人就是这个模 型的元模型,而人就是工人的元元模型。m o f 模型采用四层模型,第四层就是 m o f 模型本身且规定m o f 模型的元模型就是m o f 模型。 3 2 2m o f 的四层模型 m o f 的架构是基于四层的体系 9 1 ( m 0 ,m 1 ,m 2 ,m 3 ) ,如图3 一l 所示,这是应 用m o f 对u m l 和j a v a 对象建模体现m o f 层次架构的两个例子。最低层m 0 信息( 数据) 层,它包含具休实现或运行的实体。模型层m 1 包含了模型,模型 描述了在信息层的实体结构,而m 2 层元模型决定了模型的结构和语义,最后元 元模型定义了元模型的结构和语义,比如抽象的m o f 语言。j a v a 对象的元模型 是对应c l a s s 文件,对一个c l a s s 文件实例化可以得到一个j a v a 对象,一个c l a s s 文件可以实例成多个j a v a 对象,而j a v a 的元模型就是c l a s s 文件的元模型,j a v a 的元模型可以称为元类,元类的抽象上一层为m o f 层,快速开发平台的输出是 c l a s s 文件,因此本文关注点在m 2 和m 1 层,另外本文以下提到元数据,无特 殊指定,都指得是c l a s s 文件的元数据,这也是这篇论文讨论的重点。 图3 - 1u m l 和j a v a 的m o f 层次图【刀 第三章元数据仓库的设计与实现 3 2 3m o f 模型整体框架 图3 2 是摘自m o f i 4 规范有关m o f 规范的整个结构,是m o f 在j a v a 语 言的一种描述方式,m o f 提供一组用于构建元模型的建模元素的集合和使用它 们的规则1 1 0 1 。图3 - 2 在这里只是为读者提供有m o f 建模元素的框架整体的印象, 让读者对m o f 的建模元素有一个感性的认识,从图中可以看出,所有的模型元 素都派生于m o d e l e l e m e n t 。有关具体的建模细节请参考m o f l 4 规范【9 】和j m l l 0 规耐1 0 l 。 3 2 4x m i 的作用 x m i ( x m lm e t a d a t a i n t e r c h a n g e ) 意思是基于x m l 的元数据交换的标 准,该标准使用扩展标记语言( x m l ) ,为程序员和其它用户提供元数据信息交 换的标准方法( 3 7 】。x m i 的目的在于帮助使用统一建模语言( u m l ) 以及不同语 言和开发工具的程序员彼此交换数据模型。x m i 也可用于交换数据仓库信息。 x m i 格式有效地标准化了任意元数据集的描述,它要求用户跨越多个工业和操 作环境而使用同一种方式读取数据。简单地说x m i 可以看作是m o f 到x m l 的 一个映射 3 7 】。 第三章元数据仓库的设计与实现 图3 - 2m o f 模型整体框架总览f 1 0 一1 5 第三章元数据仓库的设计与实现 3 3 元数据仓库的详细设计 这个项目主要是基于j 2 e e 平台,因此系统只关注j 2 e e 的平台,并未实现 与其他语言平台的交换元数据信息的模块,但是我们设计了w e bs e r v i c e s 模块的 接口,它可以与异构的系统交互元数据信息。图3 - 4 是系统设计模块图。 3 3 1 各模块功能介绍 图3 - 4 元数据仓库模块图 元数据文件的读取模块,分别有x m i 读取模块,x m ls c h e m a 读取模块, u m l 图读取模块,x m i 文件读取模块,这些模块负责把相应格式的文件转为相 应的m e t a o b j e c t 。 m e t a d a t a r e p o s i t y 模块是这个项目最重要的模块,它负责读取文件,调用相 应的模块生成相应的元数据对象,然后把元数据对象放入m e t a d a t ao b j e c tp o o l 。 它还接受外界的查询服务,返回结果。它调用m e t a d a t ao b j e c tp o o l 返回所查询 的m e t a d a t a o b j e c t ,可以按类名也可包名查询,不能接受查询具有某一种属性, 方法,关联的m e t a d a t ao b j e c t 。m e t a d a t a r e p o s i t y 也可以删除m e t a d a t ao b j e c t , 需要相应的权限。 e j b 模块由m e t a d a t a r e p o s i t 3 ,p u b l i s h e j b 和m e t a d a t a r e p o s i t y r s e r v i e e e j b 两 个主要e j b 组成。外部的应用程序可以通过m e t a d a t a r e p o s i t 3 r p u b l i s h e j b 部署三 种文件格式元数据文档,m e t a d a t a r e p o s i t ) ,s e r v i c e e j b 接受外部应用程序的查询 请求,验证合法性,并返回元数据对象。 第三章元数据仓库的设计与实现 w e bs e r v i c e s 这部分的模块主要是通过w e bs e r v i c e s 的模块向异构系统提供 服务,这个模块可以生成与e j b 服务的w s d l 文件,并把这个w e bs e r v i c e s 发布 到a i x s 上。a i x s 是一个a p a c h e w e bs e r v i c e s 的服务器,通过这种方式异构的 系统可以通过w e bs e r v i c e s 调用元数据仓库的e j b 服务。 m e t a o b j e c tp o o l 负责维护m e t a d a t ao b j e c t 生存期,每一个放入池中的 m e t a l ) a m0 b j e c t ,p o o l 负责把这个对象序列化,作为备份,p o o l 初始化时都会把 这些文档读回内存,建立相应的元数据对象。m e t a o b j e c t p o o l 还维护各种包名和 类名的h a s h 表,用于快速返回查找的对象。 x m i 文件模块:这部分模块的功能主要是维护全局的元数据信息文件,由 于m e t a d a t ao b j e c tp o o l 不能存储所有的元数据对象,所以有一部分还要存放在 硬盘,从这个角度来看,m e * a d a mo b j e c tp o o l 可以看作一种加快访问速度的缓 存。另外,为了应付系统的突发事件,元数据信息也需要一个硬拷贝,显然把全 部元数据信息作为备份存放在文件系统是比较安全的。另外,与异构系统的交互 也需要x m i 格式的文件。 对元数据仓库编码的说明,元数据仓库的大部分代码我们是用e m f 现成的 源码,其中对四种格式的文件读取模块作了一些小改动,因为e m f 框架
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年乌鲁木齐市新市区事业单位人员招聘笔试试题及答案详解
- 招聘1人!南滩社区卫生服务中心面向社会公开招聘医务人员笔试备考试题及答案解析
- 2025年咸阳市秦都区公务员人员招聘考试试题及答案详解
- 2026湖南永州市市直事业单位引进博士20人(第三批)考试备考试题及答案解析
- 2025-2026学年七年级上信息技术说课稿
- 2025-2026学年复式统计表说课稿五年级
- 2025年江苏省南通市公务员人员招聘考试试题及答案详解
- 2026年郑州市管城回族区公务员人员招聘笔试备考试题及答案详解
- 2026年沈阳市大东区事业单位人员招聘笔试备考试题及答案详解
- 2026年湖北省鄂州市公务员人员招聘笔试备考题库及答案详解
- 2026年人教版小学五年级数学上册教学计划及教学进度表
- 水库放空技术导则(NBT10966-2022 )
- 2026年教科版新教材科学六年级上册教学计划(含进度表)
- 小学道德与法治新部编版五年级上册全册教案(2026秋)
- 2026年普通高等学校招生全国统一考试(新课标全国Ⅰ卷)英语真题(含答案+听力原文+解析)
- 沪教版英语五年级上册Unit 1基础测试卷(含答案)
- 2026年新闻记者职业资格考试主观题背诵版资料
- 张力性气胸的诊断及治疗
- 1106 非无菌产品微生物限度检查:控制菌检查法 对比表
- 招商银行沈阳市大东区2025秋招面试典型题目及参考答案
- 工程监理培训方案内容(3篇)
评论
0/150
提交评论