您好,欢迎来到微智科技网。
搜索
您的当前位置:首页MDA_新一代软件互操作体系结构

MDA_新一代软件互操作体系结构

来源:微智科技网
第29卷 第2期Vol.29 2№计 算 机 工 程Computer Engineering

文献标识码:A

2003年2月 February 2003

中图分类号: TP311

发展趋势/热点技术· 文章编号:1000—3428(2003)02 0003——03·MDA:新一代软件互操作体系结构董建武(浙江大学人工智能研究所,杭州 310027)

摘 要:UML和MOF等建模标准的形成使得解决分布式异构环境下互操作问题的方法有了质的飞跃。为适应这种新形势,OMG提出模型驱动体系结构MDA用以明确这些新标准的相互关系,并为制定、维护和发展建模标准提供帮助。该文介绍了MDA的基础思想和基本框架,并对基于MDA的软件开发模式作了阐述。

关键词:模型驱动体系结构;统一建模语言;元对象设施;公用仓库元数据

MDA:Interoperational Architecture of New Generation Software

DONG Jianwu

(Institute of Artificial Intelligence, Zhejiang University, Hangzhou 310027)

【Abstract】The establishment of modeling technologies such as UML and MOF makes a great progress in the interoperability in distributed, heterogeneous environments. Adapting to this new situation, OMG issued the model driven architecture to define the relationships among OMG standards and help in the creation, maintenance and evolution of standards. This paper describes the essential idea and framework of MDA, and discusses the influence of it on software develop technology.

【Key words】Model driven architecture;UML;MOF;CWM

早在19年,为了解决跨平台的软件互操作问题,由软件技术供应商、开发者和最终用户共同发起成立了对象管理集团OMG[1]。这个组织所提出的CORBA互操作标准已经成为事实上的工业标准。然而,仅仅依靠孤立的接口标准所能达到的跨平台互操作能力并不能满足需求,跨平台的软件互操作需要一个根本的解决方案。

自从CORBA标准制定以来,OMG一直把它作为制订其他互操作标准的基础,因此这些标准很自然地可以统一在对象管理体系结构OMA之中。但1997年以来,随着一系列不基于CORBA的重要标准的发布,OMG对于解决软件互操作问题有了新的认识。建模技术的逐步完善使得软件互操作问题的解决方法不再仅仅局限于统一的接口标准,而是扩展到整个的软件生命周期,包括商务建模、系统设计、组件的构造、组合、集成、发布和管理以及更新[1]。为了更好地挖掘众多建模标准的潜力,促进和规范建模技术的进一步发展,制定一个清晰的体系结构势在必行。作为在软件互操作领域最有影响力的组织,OMG于2001年7月发布了模型驱动体系结构(MDA)。可以说MDA的初衷是为了解决软件互操作问题,但所带来的影响却将远远超越互操作领域。

本电脑\"、\"某某牌某某型号的笔记本电脑\"。如果还要细化下去,还会有无穷的规约来表达这个系统。从这个例子中可以看出,在一个客观系统中可以挖掘出无穷多的细节,一个系统的任何规约都只是从一个特定的角度描述了这个系统的某个层面,都是对这个客观系统的某种程度上的抽象。这种特定的角度(或者说抽象的程度)就是视角。上述例子中的3个规约是一个不断逼近客观现实的关系,这种关系就是抽象和求精。简单地说,抽象就是略去无关的细节,求精就是现实化。1.1.3 缩放

对于系统中的对象和对象之间的关系,会有不同抽象程度的模型。如图1,抽象模型中的一个对象,在求精模型中可能由多个对象组成,抽象模型中的一个关系,在求精模型中可能表现为多个关系。从抽象模型中的一个对象(关系)到求精模型中的多个对象(关系)的过程称为放,反之则称为缩。

1 MDA概述1.1 MDA的基本概念MDA中的基本概念有模型、抽象、求精、视图、缩放、平台。1.1.1 模型

模型是对系统的一部分结构、功能或行为正式规约[1]。首先,模型是一种系统规约,这种规约可以是对结构的规约也可以是对系统功能或系统行为的规约;其次,这种规约必须是正式的,即必须使用一种严格定义没有歧义的语言。所以一个模型必须和一种严格定义了语法和语义的建模语言绑定在一起。根据模型的这种定义,程序代码也是模型。1.1.2 抽象、求精、视角

一个客观系统的规约可以处于不同层面上。例如,对于一台笔记本电脑。可以有3个规约:\"一台电脑\"、\"一台笔记

作者简介:董建武(1974~),男,硕士生,主研方向为体系结构、分布式系统收稿日期:2002-02-01—3—1.1.4 平台无关和平台相关

在MDA中,平台指的是和系统的基础功能无关的技术细节[1]。例如一个资金转账的组件,它的基础功能就是从一个指定的账户扣除一定数额的资金,并在另一个指定的账户里增加相同数额的资金。无论这个组件是以CORBA对象的方式来实现还是以EJB来实现,这个功能是不变的。一个不带有任何特定技术细节的系统模型,就是平台无关模型。这种模型描述了系立于任何实现平台的结构和功能特征。而包括了特定技术细节的模型,就是平台相关模型。这种模型描述建立在特定技术基础上的系统结构和功能特征。1.2 MDA的模型架构在MDA中,模型不再仅仅是描绘系统,辅助沟通的工具,而是软件开发的核心和主干。图2描绘了MDA的模型架构。从中我们可以看到,一个系统从不同的视角可以为不同的模型所描述。这些模型分为3个层次:计算无关,平台无关,平台相关,它们之间有着抽象和求精的关系。模型之间通过模型映射机制相互映射,从而保证了模型的可追溯性。

软件的开发和更新过程就是模型自顶而下,逐步求精的过程。首先由领域专家构建商务建模;然后由模型映射专家将商务模型映射到平台无关的计算模型;最后由平台技术专家将平台无关模型映射到平台相关模型。

MDA的基本思想就是:一切都是模型。软件的生命周期就是以模型为载体并由模型映射所驱动的过程。

是所有元模型的通用表达。通过MOF,在所有元模型间就有了一种\"通用语言\"。

元-元模型MOF元模型UPMUMLCWM模型一个UML模型 m另一个UML模型m' 数据m的一个实例m的另一个实例m'的一个实例图3 四层元数据结构1.3.2 (UML)统一建模语言

UML是一种元模型。相比其他元模型,它具有以下3个方面的优点:

第一,UML模型不仅可以用图形化的方式表达,也可以用文本方式表达。在图形和文本之间的转化不会带来语义损失。图形化的表达能力有利于人的理解,文本方式的表达则有利于自动处理,UML在两方面都有优势。

第二,UML模型的语义表达能力十分突出,尤其是在表达行为和用法的约束方面比其他元模型要丰富得多。强有力的语义表达能力可以有效地减少建模过程中的信息失真。

第三,UML对PIM和PSM都有良好的建模能力。对于PSM,UML可以通过内建的扩展工具(版型、标记等方法)来表述平台特有的语义。

1.3.3 (CWM)公共仓库元模型

CWM是一组元模型,目的是为了在数据仓库工具、数据仓库平台和数据仓库存储之间建立一个商务智能元数据的交换机制[4]。CWM覆盖了数据仓库应用的整个生命周期,包括数据源表达、分析、仓库管理以及典型的数据仓库环境基础组件。数据源元模型支持对多种数据源进行建模;分析元模型则用于对数据转化、OLAP、信息可视化、商业术语以及数据挖掘的建模;仓库管理元模型则负责仓库处理、动态跟踪以及时间规划方面的建模;基础组件元模型则支持多种通用的数据仓库元素和服务,比如说数据类型、类型系统映射、抽象键值和索引、表达式等等。

图2 MDA的模型架构1.3 MDA的核心技术建模和模型映射技术是MDA的核心,它们是元对象设

施 (Meta Object Facility, MOF),统一建模语言(Unified

Modeling Language, UML),公共仓库元模型(Common Warehouse Metamodel , CWM)。1.3.1 (MOF)原对象设施

MOF是OMG的一个标准,它是一种面向对象的元-元模型,为规约面向对象元模型定义了一种公共的抽象语言。MOF用来定义面向对象元模型的基本元素、语法和结构[2]。以MOF定义的面向对象元模型,可以通过交换元数据来实现互操作。

MOF为各种元模型提供了一种通用的语言基础,使它们不再是孤立的,而是可以相互映射,相互交换元数据,并相互理解。如图3表示了四层元数据结构,数据的语义由模型来描述,模型的语义由元模型来描述,元模型的语义由MOF来描述,MOF则有自描述的能力[2]。从中可以看到,数据的语义可以在MOF这一层次上被最终表达,而这种表达

2 MDA基于的软件开发模式图4表达了基于MDA的软件开发模式。这种开发模式采用一组基于MOF的元模型为系统建模。利用模型映射技术完成软件的逐步求精过程,并保证了这个过程的可追溯性。这种开发模式对于传统的软件开发模式在许多方面都有了根本性的改进。2.1异构系统协作由于元数据具有自描述能力,因此异构的系统可以通过元数据来互相识别,互相了解,进而互相协作。任何一个基于MDA的系统都能够存储、管理、发布应用层和系统层的元数据。当组件被植入环境的时候,可以通过与环境交换元数据来达到沟通和协作的目的[4]。因此,基于MDA的系统可以从根本上解决互操作问题。2.2 空间失配问题从计算机软件诞生的那一天起,软件开发者就不得不同时在问题空间和解空间进行工作。这两种空间的异构性是使软件质量难以保证的一个重要原因。而在MDA的开发模式

—4—

中,问题空间和解空间中间的鸿沟被众多的元模型填平了。单一的问题空间和解空间,被多个相对的问题空间和解空间所代替。如图4中,元模型MMn是元模型MMn-1的解空间,也是模型MMn+1的问题空间,而相邻两个元模型之间的失配程度要大大小于原始问题空间和解空间的失配程度。再加上模型映射技术的辅助,失配问题可以得到很好的解决。

抽象求精从软件技术发展的历程上来看,过程求精编程技术的解空间处于数据层,面向对象技术把解空间提升到了模型层,而MDA则把解空间提升到了元模型层。表1比较了这3种技术的区别。

3 总结和展望MDA目前还处于萌芽阶段,在基于MDA的软件开发技术真正实用化之前,还有许多技术领域等待计算机科学家,软件开发者和最终用户来研究:

(1) 元模型和模型映射方研究

MDA的完善相当程度上是元模型和模型映射技术的完善,如何建立元模型和相应的模型映射技术都需要方的指导。

(2) 领域元模型的建立

针对各种不同的应用领域,要建立大量的基于MOF的元模型。这些元模型要包含应用领域的特殊规则和语义,既要严格没有歧义,又要容易为非计算机专业的领域专家所掌握。

(3) 组件平台元模型的建立

针对各种组件平台,要建立专门的平台元模型,以支持平台相关模型的建立和代码生成。

(4) 模型映射技术的开发

在大量的元模型之间,都需要模型映射技术来辅助开发人员进行高效的模型映射。有了高效的模型映射技术,MDA才能真正走向实用。

(5) 中间元模型研究

两个元模型如果异构程度太高的话,针对这两种元模型的模型映射工具会难以开发,或者映射效率低,需要大量的人工干预。这样就要考虑在这两个元模型中间建立一个中间元模型,以这个中间元模型作为桥梁进行模型映射。在什么情况下需要构建以及如何构建中间元模型,都是有待研究的问题。

(6) 元模型和模型映射的评价理论研究

在特定的应用环境下,什么样的元模型才是高效的,什么样的模型映射工具才是高效的,都需要评价理论来指导。这样开发人员才能在众多相互竞争的元模型和模型映射工具种选择最适合自己的一种。

随着MDA框架中的各项技术逐渐完备,软件开发将会在开发效率和质量保证方面取得突破性进展。

参考文献1 OMG/ORMSC.Model Driven Architecture.OMG Document Ormsc/2001-07-01,2001-07,Available at www.omg.org

2 OMG/MOF.Meta Object Facility(MOF) Specification(Version 1.3). 2001-10,Available at www.omg.org

3 Bezivin J.From Object Compostion to Model Transformation with the MDA.TOOLSUSA,Volume IEEE TOOLS-39,Santa Barbara,2001- 084 Poole J D.Model Driven Architecture:Vision,Standards and Emerging Technologies.ECOOP 2001,2001-04

5 OMG.Unified Modeling Language Specification.(Version 1.3).2000- 03,Available at www.omg.org

...模型M0模型映射技术map(0,1)模型M1模型映射技术map(1,2)模型Mn(代码)模型映射技术map(n-1,n)元模型MM0元模型MM1元对象设施 MOF元模型MMn图4 MDA基于的软件开发模式2.3 专用的元模型和模型映射技术对于不同的领域和视角,可以建立起专门的元模型。采用专用的元模型建模比使用单一元模型在准确性和完整性上有很大的提高,开发成本也会随之降低。而专用的模型映射工具可以将模型映射中一些固有的范式总结成自动的分析和处理工具,从而大大提高模型映射的质量和效率。2.4 元模型和模型映射技术共享元模型和模型映射技术实际上都隐含了特定领域所固有的知识。在同一个领域的应用中,都可以共享这些元模型和模型映射技术。2.5 模型重用软件重用从组件的重用扩展到了模型的重用。这是软件重用的一大发展。首先,组件重用有平台的,而模型的重用则脱离了这个;其次,模型由于它的多层次性,使得软件的重用可以在任意一个层次上,这样就可以最大限度地重用用现有成果。2.6 流水线式开发由于每种模型都使用专门的元模型,而且有规范的建模工具和模型映射工具为模型质量作保障,软件生产可以实现流水线操作,即每一种模型的建模和模型映射工作由专门的人员来完成。软件生产的质量和效率都将有质的飞跃。2.7 从模型到元模型表1 3种技术的比较编程技术MDA面向对象

解空间层次元模型层模型层

操作的对象

Meta-object( meta-model), Object(model), Data Object(model), DataData

局限性可以自定义语言(元模型)只能使用有限的语言(元模型)

过程求精

数据层

只能使用有限的数据类型

—5—

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务