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