模型驱动的体系结构晁静MF0933001什么是MDA模型驱动体系结构(Model-DrivenArchitecture),简称MDA,是由OMG组织全新提出的应用模型技术进行软件系统开发的方法论和标准体系。MDA在软件系统生命周期的各个阶段,保证互操作性、可移植性、可重用性。OMG(ObjectManagementGroup)对象管理组织MDA产生的背景(1)一系列平台技术的诞生和广泛应用(CORBA、J2EE、COM/DCOM、XML/SOAP)中间件平台之间的互操作障碍企业业务发展受制于某种平台技术发展如何解决系统的互操作性、可移植性、可重用性等问题,成为软件开发领域的重要课题。MDA产生的背景(2)1997年起,OMG陆续颁布了几个重要的技术无关建模标准:统一建模语言UML、元对象设施M0F、XML元数据交换XMI和公共仓库元模型CWM等互操作性、可移植性、可重用性不仅限于系统设计阶段,需要贯穿于软件系统整个生命周期OMG对MDA的定义和描述MDA以OMG建立的各种标准为基础,实现将商业或应用逻辑与支撑平台技术相分离。通过MDA及相关标准建立的平台独立应用可以被实现于包括C0RBA、J2EE、.NET、Web服务和其他基于Web的平台等在内的一系列开放和私有平台之上。MDA的总体结构MDA核心MDA的核心是OMG的建模标准,包括UML、CWM和MOF。MDA依据这些标准为企业应用建立独立于实现技术的平台无关模型。UMLUML(UnifiedModelingLanguage)是一套标准的面向对象分析和设计的图形化模型语言。实现软件系统可视化(Visualizing)、规范定义(Specifying)、构造(Constructing)和文档化(Documenting)建模。MDA的各种模型均采用UML进行描述。CWMCWM(CommonWarehouseMetamodel)为数据仓库和业务分析领域最为常见的业务与技术相关元数据的表示定义了元模型。CWM实际上提供了一个基于模型的方法来实现异构软件系统之间的元数据交换。依据CWM建立的数据模型,尽管它们存储于不同的软件系统中,但可以很便利地被整合和集成,进而确保数据挖掘等应用可以跨越企业数据库的边界。MDA核心的外层MDA对各种实现技术平台(CORBA、J2EE、.NET、XML/SOAP等)的支持。在这个层次上,平台无关模型被转换成为与各个平台技术特性相关的平台特定模型,并进而在平台上实现。XMIXMI(XMIMetadataInterchange)通过标准化XML文档格式和DTD,为UML元模型和模型(元模型可以视为模型的特例)定义了一个基于XML的交换格式,随之也即定义了一个从UML到XML的映射。XMI定义了如何用XML对UML模型进行描述。普适服务企业计算需要一系列的公共基础服务为其应用程序提供运行环境。如目录服务、事件处理服务、事务服务、持久性服务、安全服务等。MDA通过高层次抽象,建立平台无关的公共通用服务模型,称之为普适服务(PervasiveServices)领域应用为领域应用提供了建模标准和公共模型,实现领域应用的可重用性、可移植性和互操作性为各行业领域软件系统的开发和集成提供通用方法论。MDA模型体系1.四层元模型架构2.MDA应用模型3.模型映射四层元模型架构MDA应用模型CIMPIMPSMCIM计算无关模型CIM(ComputationIndependentModel)是MDA基于计算无关视角(CIV)建立的系统模型,用于描述系统需求、功能、行为和运行环境,也称为业务模型。被称为计算无关,主要因为CIM侧重于表述系统的外部行为和运行环境,而不表现系统的内部结构和实现细节等相关内容。CIM为领域专家与系统设计专家之间关于领域需求的沟通和交流提供了桥梁,并直接支持PIM、PSM模型的构造和实现。PIM平台无关模型PIM(PlatformIndependentModel)是MDA基于平台无关视角(PIV)建立的系统模型。PIM是抽象出的业务逻辑。被称为平台无关,主要因为PIM不包含与实现平台和技术相关的特定信息。PIM所表现出的平台无关性,使其能够在任何技术平台上得以实现。PSM平台特定模型PSM(PlatformSpecificMode1)是MDA基于平台特定视角(PSV)建立的系统模型。PSM从相应PIM转换而来,它既包含了PIM中所定义的业务逻辑规范,也包含了与选定平台和技术相关的特定实现信息细节。模型映射模型映射(Mapping)是模型转换时所需定义的模型元素间映射关系,它提供转换规则及规格标准。MDA中,模型转换的核心是PIM到PSM的转换。MDA提供了两种模型映射方法:类型映射和实例映射。类型映射类型映射提供了从PIM采用的模型语言类型到PSM采用的模型语言类型的映射。两种模型语言元素之间的转换模型语言的“翻译”过程实例映射实例映射的方法是通过对PIM模型元素加以标记,来标识该元素以某种特定方式转换为PSM模型元素。实例映射中的标记(Marks)是平台特定的,其内容体现着PSM所选定实现平台的相应特定要求。映射的组合各有优势大多数情况下,模型映射是类型映射和实例映射的组合使用。PIM到PSM的模型转换对于模型转换来说,其输入是一个已存在的PIM和选定的某个映射,输出的结果是相应的PSM和转换记录。分别对应于类型映射和实例映射两种模型映射方法,MDA提供两种基本的模型转换方法。两种转换方法从PIM到“实现”的转换多数情况下,从PIM到“实现”的模型转换并非一次完成,而需要经过多次。模型转换的次数取决于对每次转换结果PSM的可用性程度要求。MDA软件开发方法MDA的应用现状MDA技术已经得到了企业界的广泛认同和应用。各行各业的众多企业或组织已经把MDA作为软件系统开发的指导框架,把MDA软件方法和标准应用于系统开发中。瑞典最大支付服务提供商PostgirotBankAB采用MDA技术对支付系统进行重建,重建后系统的运行费用较原来降低80%,事务处理能力提高了1O倍MDA的困境和发展趋势MDA标准没有完全的发展开发与MDA相适应的工具UML技术复杂,需要有技术的分析员转换方法的评估标准MDA的潜力满足长期投资MDA与流行开发过程和技术相结合