王浚羽+陆松岩
【摘 要】本文针对仿真系统的互操作和可重用问题,介绍了MDA(模型驱动架构)系统的设计开发过程,探讨了将HLA和MDA技术两者结合起来的可能,并研究构建了基于HLA和MDA的仿真系统,对于提升仿真系统的互操作能力和可重用性具有重要意义。
【关键词】HLA;MDA;仿真系统
0 引言
随着计算机技术、网络技术和仿真技术的发展,基于DIS与ALSP的分布交互式仿真系统在技术和体系结构方面的不足和局限越来越明显,尤其在可重用性和互操作性方面已不能满足越来越复杂的作战仿真系统的需要[1]。为此,1995年10月美国国防部的国防建模与仿真办公室DMSO在其建模与仿真计划MSMP中提出以HLA为核心的技术应用。高层体系结构(High Level Architecture,HLA)是用于构建仿真系统的通用技术框架,主要目的是希望通过提高仿真应用中的互操作性和仿真资源的可重用性,进而使仿真系统变得高效,采用HLA的技术体系,可以将单独的仿真应用相互连接起来组成一个大型的仿真系统。
HLA主要由三个部分组成:规则(Rules)、对象模型模板OMT(Object Model Template)和运行支撑框架RTI(Run-Time Infrastructure)的接口规范说明(Inerface Specification)。规则规定了联邦必须满足的要求和联邦成员必须满足的要求;对象模型模板要求使用对象模型来描述联邦和单个成员;接口规范说明定义了联邦成员使用的标准服务和接口。
MDA(Model Driven Architecture)是模型驱动架构,MDA是OMG通过提供开放的规范解决集成问题的架构,它主要是提供一组规范来解决软件系统生周期中与集成相关的互操作和可重用问题[2]。MDA的核心思想是首先抽象出与实现技术无关、能完整描述业务功能的核心模型——平台无关模型(Platform Independent,PIM);然后,通过映射规则和工具将PIM转换成与具体实现技术相关的应用模型——平台相关模型(Platform Specific Model,PSM);最后,将PSM通过工具转换成代码。MDA实现了设计层的模型重用。在MDA中,模型不再是系统开发过程的中间辅助,而是开发的根据和重要基础,系统的实现和更改都由模型驱动。
1 MDA系统设计和开发过程
基于MDA的系统设计和开发过程是以系统建模作为驱动力的,模型是开发过程中的关键。MDA将软件系统的模型分离为平台无关模型(Platform Independent Model,PIM) 和平台相关模型(Platform Specific Model,PSM),同时又能通过转换规则将它们统一起来,以这样的方式试图去摆脱需求变更所带来的困境。平台无关模型PIM 是对系统高层次的抽象,其中不包括任何与实现技术相关的信息;平台相关模型PSM 是跟特定平台相关的模型;它们各自的改变都可以是相互独立的,不会造成商业逻辑和实现技术的紧密耦合,同时MDA 又可以通过转换来弥补它们之间的鸿沟。MDA 开发模式的生命周期与传统的方式看起来区别并不大。它们都具有相同的开发阶段,主要的区别就是各个阶段的设计工件是不相同的,MDA 的设计工件是正式的精确模型,它们能够被机器所理解。
MDA 的系统开发首先使用平台无关的可视化建模语言(UML)来搭建平台无关模型,每个系统仅需建立一次PIM;然后根据特定平台和实现语言的映射规则,将PIM 与特定平台相结合,利用标准的转换规则将其转换成平台相关模型PSM(根据实际需要,每个系统可以有一个或多个PSM),最终生成应用程序代码和测试框架[3]。MDA 开发生命周期如图1所示。其中,模型的映射即将PIM 模型转换为PSM 模型,不同的底层实现平台其相应的PSM 模型是不同的,它决定了模型的映射方式。编码是从PSM 模型到代码的映射,通常用绑定与PSM 模型的程序来实现,这种程序就是元程序(Meta Programs)。
MDA 开发过程中,由于模型是建立在统一的技术框架下的,因此不同阶段工件的转换过程是自动化的。这也就意味着在MDA 开发过程中,大量成熟、广泛的自动化转换工具的研制与开发也是系统开发工作重要的组成部分。
2 基于HLA与MDA的作战仿真系统框架构建
基于 MDA 的HLA 仿真系统开发过程的基本思路是:依据由联邦目标确定的联邦剧情和联邦需求,利用UML 统一建模语言针对仿真联邦所涉及的问题域和系统域,构建仿真联邦的平台无关模型。联邦PIM 的描述应该包括任务空间表达,联邦的组成、结构和功能,参与仿真联邦的各成员的构成和功能分配,参与仿真的实体(包括智能体、非智能体)及其交互,实体的状态和行为等。联邦PIM 还需要描述仿真中将要用到的各种服务(与平台具体技术无关)。这一阶段是将联邦目标信息转化为结构、功能和行为的描述,与将来选择的仿真支撑框架是无关的。然后,将联邦PIM 按照一定的模型映射规则,利用已开发的转换工具,映射成与RTI(Run-time Infrastructure)仿真平台相关的联邦平台相关模型(PSM)。这一阶段的主要工作是:开发联邦对象模型,开发成员对象模型和定义具体RTI 的信息和服务。具体地说,是将联邦PIM 中的实体和交互映射成联邦对象模型(FOM)表中的对象类和交互类,将联邦PIM 中描述的参与联邦的各成员的组成和功能相应地转换成成员对象模型(SOM)表中的对象类和交互类,将PIM 中描述的各种仿真服务映射成RTI 中特定的API 函数等。联邦PSM 中对象模型描述具体应包括对象模型鉴别表、对象类结构表、交互类结构表、属性表、参数表、枚举数据类型表、复杂数据类型表、路径空间表、FOM/SOM 词典等。联邦PSM中RTI 仿真平台信息和服务的描述具体应包括联邦管理、声明管理、对象管理、所有权管理、时间管理、数据分发管理等。以上工作完成后,再利用PIM,选择与目标仿真平台相关的PSM,利用工具自动生成仿真代码。而后,进入集成和测试联邦、运行联邦。