郑世明,徐新伟,朱 江
(陆军指挥学院作战实验室,江苏 南京 210045)
世界各国武器装备体系研究实践表明,仿真分析是支撑武器装备体系规划论证、效能评估、编配优化、在役考核等应用研究的有效手段。现阶段,我军瞄准世界领先技术水平,成体系、成建制发展陆、海、空、天、电等多维空间武器装备体系的需求对于仿真系统支撑手段提出了更高要求,迫切需要能够满足不同武器装备在联合战场环境背景下成体系运用的仿真支撑平台和应用环境,而仿真应用的核心是模型与平台。经过多年来装备体系仿真与建模的积累,在各军兵种院校、科研院所已经相继开展了各种类型的装备建模仿真与应用研究,但是较多建模仿真应用仅仅是满足自身的仿真需求,不同的仿真系统在模型、数据等方面是相对独立的,仿真资源无法充分共享,系统之间的交互能力较弱,形成了若干仿真应用的烟囱和壁垒,难以成体系展开运用[1]。针对各军兵种对武器装备体系仿真应用的现实需要,探索能够综合利用和分类管理的开放式平台框架,对于综合集成、整合各类仿真资源,使其成体系化、规范化、模块化,并具有可重用、可集成、可互联、可组合、可定制的应用特点,便于不同仿真资源在统一的仿真框架控制下,实现动态重构和灵活组合,以满足不同类别的仿真应用。因此,面向武器装备体系开展基于构件的敏捷仿真框架研究对于武器装备作战需求分析、应用理论创新、装备发展与论证、武器装备概念细化与技术开发、武器装备运用演示验证等研究具有重要的现实意义和指导作用。
基于构件技术构建敏捷仿真框架的目的是实现仿真业务的松耦合,通过组件化的功能组装,实现系统的快速重构,并达成仿真应用系统内部高度匹配,系统间适度耦合,且系统之间交互时主要是通过相应的标准接口完成数据、模型交互,避免繁琐的通信和协议交互,具备快速响应仿真需求的能力。
敏捷仿真框架应在总体框架的支撑下,建立技术体系框架、仿真功能框架、数据组织框架和应用体系框架,如图1所示。其设计的主要内容包括:1)构件化、服务化的总体框架;2)可扩展的分布式并行仿真引擎;3)构件化模型建模方法及工具;4)完备的仿真功能框架及应用二次开发SDK。需要解决的问题主要是三个:一是解决武器装备体系敏捷仿真框架的开放性、可扩展性和灵活性等问题;二是解决服务装备体系建模仿真的可重用性、灵活性和通用性问题;三是解决基于敏捷仿真框架的应用系统快速重构问题。
图1 敏捷仿真框架总体描述
自20世纪末,从企业制造到组织管理,从软件工程到军事力量建设,理论界与实业界都提出了对组织实体“敏捷性”的强烈需求,并相继展开了一系列的理论探索和工程实践。以1991年美军Iacocca研究所提出“敏捷制造”(Agile Manufacturing,AM)为起点,领域专家和相关学者对企业敏捷性及其相关内容进行了深入的研究,相继提出了柔性制造(Flexible Manufacturing,FM)、智能制造(Intelligent Manufacturing,IM)、虚拟制造(Virtual Manufacturing,VM),以及敏捷制造(Agile Manufacturing,AM)等理论。同时,外军首先将敏捷方法和思想用于指挥控制系统的建设中,以美国为首的北约军事领域专家相继组建了SAS-050、SAS-065、SAS-080、SAS-085等研究小组[2]。
外军虽然尚未提出敏捷仿真框架的概念,但是从现有的仿真框架来看,也有一些与之十分相似的描述和目标,主要有FLAMES、OneSAF和XMSF 等。FLAMES(Flexible Analysis Modeling and Exercise System)是一个具有柔性特征的仿真框架,主要是针对作战行动开展仿真系统的开发与应用,满足不同仿真应用对模型构建的需要。采用面向对象和面向过程的多种建模方法,具有易使用、开放体系和高度定制化的特点。美国陆军下一代一体化的CGF仿真系统OneSAF(ONE Semi-Automated Force)系统及其模型框架按照组合—产品—组件的体系模式定义其模型体系结构,按照组件化的设计思想,支持多层次、多分辨率模型的组合,整个体系具有灵活性、可扩展性、集成性等特点。XMSF(eXtensible Modeling &Simulation Framework)可扩展建模仿真体系框架是美国海军研究生院与SAIC公司等机构提出并启动的一个建模框架,XMSF定义为一组基于Web的建模与仿真的标准、描述以及推荐准则的集合,其核心是采用通用的技术、标准和开放的体系结构促进建模与仿真应用在更大范围的互操作性和重用性[3]。
我国学者对于构件化和敏捷方法也进行了跟踪研究,对于敏捷性的理解和拓展也较为丰富,先后提出了分散化网络制造、精益-敏捷-柔性生产系统(Lean-Agile-Flexible,LAF)等理论。综合国内外相关研究成果,可以认为仿真领域的“敏捷性”是指在多种仿真应用需求和不可预见的环境中,仿真组织具有应对需求快速变化的柔性和响应能力,从而可以快速、灵敏、积极、有效地响应复杂装备体系仿真应用变化,满足不同用户的仿真需求。实际上构件技术与敏捷方法在建模仿真领域已经得到高度关注,只是有的学者并没有明确提出“敏捷”的概念,实际上在内涵和外延上与其有共识。仿真技术的发展推动了仿真框架技术的进步和完善,CISE(Component-based Integrated Modelingand Simulation Environment)是北京仿真中心开发的基于组件的集中/分布/并行一体化建模仿真环境。该平台有效改善了现有仿真互操作和可重用性受限、可扩展性不强等缺点,同时融合并行仿真、可扩展的建模与仿真框架(XMSF)、基于模型驱动的体系结构(MDA)等技术,已在国内主要的复杂系统仿真中得到成功应用,成为复杂系统设计、验证的主要平台工具[4]。李文杰等提出了基于构件的多粒度森林仿真系统开发方法,从系统框架描述、设计方法以及实践应用等方面阐述了敏捷仿真系统的软件开发方法[5]。华中科技大学朱卫锋等开展了敏捷后勤仿真系统设计研究,提出了基于时间步进的事件调度仿真策略,给出了敏捷后勤的分布式仿真体系结构,并阐述了敏捷后勤系统仿真程序设计与实现过程[6]。中国电子科技集团29所臧维明等提出了一种跨平台敏捷式动态可重构系统框架研究,分析了该框架的工作原理和关键技术,并在ARM和DSP等多种嵌入式处理平台上进行了工程应用验证,具备了硬件感知和组件动态重构能力,以及模块化图形化的系统配置能力[7]。
2.1.1 概念内涵
构件这一专业术语来自于建筑业,借鉴建筑业的构件理念,也有专家学者称为“组件”,构件化方式是实现软件重用的重要方法和途径,是一种以专业化、标准化、模块化方式快速进行软件研发的批量化生产方式[8]。在仿真领域,构件的内涵主要包括:一是从功能结构上看,构件是一个具有独立功能的模块,这种功能模块粒度可以根据需要自行定义和生成,既可以是最小的功能单元,也可以是初步组合后的较大粒度的功能实体;二是从描述方式上看,遵循通用的描述方法和规范,每一个构件都有独立、明确的功能,构件之间能够相互识别和兼容,在统一的规范下提供交互访问的接口,将对功能的具体开发转化为对接口的识别与管理;三是从构件分类上看,可以是模型构件、算法构件、数据构件和软件构件,根据应用对象和功能的差别,按需构建与使用,模型构件主要用于仿真模型的快速拓展,算法构件主要用于对各类算法的组合以满足更为复杂的应用,数据构件主要用于对数据库的快速生成、数据组织管理和集成应用,软件构件则是应用系统层的快速重组以满足更高级别的应用。
2.1.2 主要特征
在建模仿真领域,构件应具有以下特征:一是自描述性,构件必须能够对其所具有的属性、对外提供的功能以及运行所依赖的条件进行说明,以使构件使用者可以准确理解构件的行为和执行环境;二是封装性,构件的实现是严格封装的,强调与环境和其他构件的分离,外界无须理解构件内部的实现细节;三是独立性,构件是可独立配置的单元,可在不同的环境下进行装配,并能够运行在不同的平台上;四是可替换性,在无需对系统其他部分进行改造的情况下,符合特定标准的构件能够互相替换,并且不会对系统造成任何不良影响;五是组合性,通过一定的连接机制,构件(模型、算法、功能)可以在集成环境下,按照一定的语法或语义信息组合成更大的构件,提供更完整、更丰富的功能。
2.2.1 概念内涵
通常意义上来说,敏捷性是应对外界环境变化的一种能力,敏捷性表现为适应性、柔性、鲁棒性、响应性等。在仿真领域,敏捷性是一种能够针对复杂装备体系仿真系统的建设和应用需求开展不同类型仿真应用的能力。敏捷性与不确定性、可变性、可适应性、柔性等概念密不可分,仿真框架的敏捷性是指在仿真框架的支撑下能够通过构件化的功能单元快速组合、按需装配和体系管理,以对不断变化和难以预测的仿真应用需求做出快速、高效的响应[9]。概括起来,主要表现为五个敏捷:重构敏捷、扩展敏捷、响应敏捷、组合敏捷、管理敏捷。其主要目标就是要解决好仿真应用的不确定性、仿真应用系统功能的可变性、多分辨率仿真模型的可适应性以及仿真框架支撑构建仿真应用系统的柔性、可扩展性、易维护性等问题。
2.2.2 主要特征
针对武器装备体系仿真框架的敏捷性而言,主要表现为:响应性、多能性、重构性、适应性、灵活性和可扩展性等。响应性是指在最短的时间和最少的成本代价下满足应用需求。多能性是指能够根据武器装备体系规划论证、作战运用效能评估、装备编配优化、作战概念演示与验证等仿真需求展现出不同的应用能力。重构性是指对模型、算法、数据和功能模块的快速重构,而无须重新开发的一种设计能力。适应性是指随着仿真需求的不断变化,能够快速有效进行结构调整以维持良好的系统性能。灵活性是指应对新的仿真应用时,在模型构建、数据表示、功能定制和流程再造等方面相比于其他的方法更易于实现,更好地满足需求;可扩展性是指在建模过程中的一种适应变化的能力,从建模方法上看,是一种设计方法上的可扩展。
2.3.1 概念内涵
框架是进行软件复用的基础,仿真框架是一种开发仿真应用软件的支撑工具,主要完成对软件系统的总体设计与扩展集成,对于系统的组成元素、功能布局、接口关系以及运行机制等进行全局组织和整体控制。敏捷仿真框架则是一种能够快速满足仿真需求、灵活重构仿真系统、迅捷拓展仿真系统功能的重要开发工具,基于构件的敏捷仿真框架,则通过构件替代框架内部相互协作的类,通过不同类型构件的接口调用和组装实现框架扩展机制,以形成构件大型复杂应用系统的一整套解决方案[10]。
基于构件思想和敏捷方法搭建仿真框架,目的是将仿真系统中仿真模型、业务功能模块、数据组织和仿真工具构件化,按照面向大型武器装备体系仿真系统的需求,并行设计开发各种仿真构件,通过构件的有效组合快速重构仿真应用系统,从而提高仿真系统的开发效率。此外,基于框架的仿真构件组装支持仿真模型、仿真算法、仿真功能的重用和快速替换,以实现仿真功能、应用流程的可定制,从而提高复用性、降低开发成本并提升仿真系统的可维护能力。
2.3.2 主要特征
敏捷仿真框架必须具备以下特征:1)领域专业性,能够提供全流程规范化的组织与管理,具备标准化的设计能力,满足仿真专业性的需求;2)体系柔性,能够采用标准化接口,基于统一仿真框架,构建具有底层一致性的系列仿真应用软件,且具有不同的底层功能模块组合,并以配置文件的形式组合各应用模块;3)高度重用性,基于复用思想,采用构件化的设计模式和实现方法,在模型重用、功能重用和数据重用的基础上实现敏捷性系统的重构和可扩充;4)流程再造性,能够依据不同的仿真需求对模型、算法、数据或功能模块进行组合、集成与协同应用,具备功能定制和流程定制的能力;5)具有快速重构性, 能够根据用户需求,在仿真框架的支持下快速定制与构建新的仿真应用系统。
对于仿真框架的评估需要从可靠性、可用性、扩展性等多个属性进行综合评定,因此对敏捷仿真框架的评估可以看作是一种多属性决策分析问题。
考虑到复杂武器装备体系仿真应用的多种需求,仿真框架需要采用一种灵活、易扩展、开放性的柔性框架,既要体现软件设计上的可重用性,也要考虑系统升级时的可扩展性。一方面,武器装备的仿真应用涉及的领域较多、应用的范围较广,不断增长的建模需求需要采用一种灵活的模型建模与组装方式,支持面向武器装备仿真的模型体系扩展。另一方面,敏捷仿真框架需要提供更多的应用支撑,这就对仿真框架本身提出了更高的要求[11]。因此,在框架设计上应体现重构上的灵活性,在功能拓展上体现便捷性和快速性,在系统部署配置上体现模块化和松耦合性。基于柔性设计理念,采用“引擎+构件”的方式对敏捷仿真框架进行设计,框架对应仿真应用软件系统的主框架,主要是负责提供公共服务及相应功能,是整个体系框架的内核,为整个体系提供应用框架。引擎主要是提供仿真处理的内核功能和构件处理功能,构件按照统一的规范提供各种功能接口,构件具有相对独立性,是对专用功能的扩展设计,单个构件的加入或退出对仿真应用系统本身不产生影响,随着功能需求的增加,按照构件的形式对平台功能进行快速扩展,“平台+构件”体系框架原理如图2所示。
其中,引擎是仿真应用体系的基础和核心,在引擎中按照内核功能、构件处理功能进行区分和构成,内核功能是整个仿真引擎的底层支撑,构件处理功能主要完成平台功能的扩展,以及实现对构件的管理,包括构件定义、注册、管理和协调等功能。构件定义主要是按照统一的规范对新的构件进行描述,构件注册主要是将新加入的构件统一在平台上注册,并为其他构件提供调用功能。构件管理主要是平台内注册的所有构件按照统一的机制进行管理和协调,使得各构件之间能够有序运行。
在这种仿真框架下,分别设计平台扩展接口、构件接口两种类型,接口的作用就是实现平台与构件之间的信息交互,依托上述接口,构件获取平台中的各类资源和数据,平台则可以调用若干构件的专用功能,实现资源、功能和机制等方面的优势互补。这种设计方法能够将扩展功能从框架中剥离出来,降低框架的整体复杂度,使框架能够在一种松散耦合的状态下实现对应用系统功能的不断扩展,既保持构件的独立性,也体现引擎的标准性,从而提升整个体系框架的扩展能力。
敏捷仿真平台的逻辑结构必须具有适应仿真对象复杂多变、建模需求不断扩展以及模型实现不断更新完善的能力,仿真框架应是一种柔性、易扩展的结构,便于各个组成系统之间能够以一种信息关联紧密、组织结构松散的方式进行联合运行。针对上述需求,在对仿真框架的逻辑结构进行设计时,采用敏捷方法对其结构进行组织与管理,如图3所示。
其中,引擎采用微内核的方式进行设计,框架主要完成接口的描述和构件管理。从类型上看,主要有模型管理、数据管理、服务管理、事件管理等构件,这些构件均按照规范的接口进行统一描述,构件之间具有信息交互的能力。服务管理构件主要是提供一种服务管理器,所有的服务按照统一的方式进行描述、注册和发布,以服务接口的形式对外提供服务功能,并以功能服务实例的方式进行封装后发布与运行。时间管理构件主要是提供一种时间管理器,负责对仿真运行的各类时间管理,以统一的形式协调各功能构件之间的时间同步,所有与时间处理相关的功能由时间接口统一处理。事件管理构件主要是提供一种事件管理器,仿真过程实际上是对各类事件离散化处理的过程,而各类事件是按照一定的规则抽象形成,通过对事件的处理驱动仿真状态不断变化,根据事件的优先级以及发生的先后时间形成事件队列。模型管理构件主要是以组件化方式完成对模型的组织、管理与交互,具体通过方案管理器、单元管理器、实体管理器以及组件管理器等完成。
图3 敏捷仿真框架的逻辑结构
图4 基于构件的装备体系敏捷仿真框架总体结构
本文以流程驱动和功能定制的方式,采用模块化“插槽式”设计方法,为仿真应用提供公共运行环境,依据仿真应用流程和业务逻辑的定制和组装构件,将装备体系仿真所需的模型构件、算法构件、数据构件等有机载入,根据不同的仿真需求采用复用方式快速生成仿真应用系统[12]。采用组件化技术实现对模型的重构、装配,并以服务的方式实现模型封装、组合和调用等,使不同类型、不同层次和不同粒度的装备仿真模型以一种通用、统一的方式进行交互和共享。参照面向服务的体系结构,采用分层描述的方法,设计一种基于构件的敏捷化装备体系仿真框架ASFESC(Agile Simulation Framework of Equipment System based on Component),将仿真框架分为四层:资源层、构件层、服务层和应用层,具体结构如图4所示。
资源层主要解决资源的描述、组织和管理等问题,该层是仿真框架的基础,包括数据、规则、模型、计算机以及存储设备等各类基础资源,其中,数据资源包括装备性能数据、作战编组数据、战场环境数据、想定数据等,模型资源包括装备模型和模型体系等,规则资源包括各类作战行动规则、模型决策规则以及各类人机交互规则等,满足装备体系仿真应用对不同类型基础资源的需求。
构件层是将不同层次、不同类别、不同粒度的模型、功能、数据等以构件(组件)的形式进行封装,使得各类资源或工具在组织形式上表现为可重用的功能单元,构件层主要包括构件描述、构件定义、构件管理、构件验证、构件配置、构件组合和组件封装等,其主要任务是完成资源或功能的组合、装配和重构。每个构件都会提供一个定义好的接口,可以与其他组件进行交互。
服务层主要是按照统一的访问接口为仿真应用系统提供集成运行和仿真运行提供服务支撑,区分为通用服务和专用服务,服务使得仿真功能更加透明,用户无须知道仿真实现的具体细节,通用服务是一种通用的服务形式,主要完成服务描述、注册、发布、查询、组合、传输和管理等。专用服务包括系统集成运行服务、构件化仿真模型服务和仿真引擎服务。
应用层是敏捷仿真框架根据装备体系仿真业务需求的变化进行应用拓展和实现的核心,目的是实现应用系统模块“高内聚、低耦合”,以模型管理、仿真推演、运行控制和分析评估为主体,通过模型集成、构件组装、功能组合和系统重构等方式对构件式子功能按需组合、灵活配置、快速生成满足不同需要的仿真应用系统,以支持武器装备发展论证、装备作战概念演示验证、装备体系编配与优化、装备作战效能评估等应用。
敏捷仿真框架的关键技术主要包括:一是 “平台+插件”的柔性仿真架构技术;二是面向服务的分层设计技术;三是可扩展仿真引擎设计方法。其主要解决面向复杂应用的仿真框架的开放性、可扩展性以及武器装备建模仿真的可重用性、可组合性等问题。前面给出了“平台+插件”的架构设计方法,并分析了面向服务的分层设计技术思路,这里重点介绍一种可扩展仿真引擎设计技术。
为实现仿真引擎的可扩展性和可组合性,仿真引擎采用组件化设计思想,仿真引擎以功能组件的方式进行模块化设计,基于仿真引擎框架集成和组合应用不同的功能组件。仿真引擎由仿真引擎框架、各类管理器接口和服务接口,管理器实现和服务组成。管理器接口可以插件的方式进行拓展,相应的管理器和服务可以灵活定制与组合应用。在引擎框架的支持下能够进行管理器与仿真服务的快速创建,实现对其有效管理,并为仿真模型提供管理器和服务的功能调用接口,驱动仿真模型运行,如图5所示。
图5 仿真引擎模块组成结构设计
针对不同的武器装备仿真应用需求,仿真引擎可以动态加载和配置不同的管理器和服务,为装备体系仿真实验提供必要的仿真运行环境。仿真引擎启动时,读取配置文件,获取管理器和服务的配置信息,从而加载相应的管理器和服务的动态库,并对其进行初始化操作。为实现仿真引擎功能模块的可替换性、可扩展性,管理器和服务采用动态链接库的设计方式来开发和实现,便于多个不同仿真应用对管理器与服务的访问,特别有利于对仿真功能更新的应用。同时,采用互联接口技术,设计统一的功能访问接口,将管理器和服务的功能接口与功能实现相互分离。
仿真框架的实用性表现在以下方面:一是能够满足多种仿真应用需求,可以在此框架下按需扩展和灵活定制面向不同领域的仿真功能;二是基于此仿真框架已经能够支撑装备体系的需求论证、编配优化、效能评估等功能不同的仿真系统的构建,且以此框架为基础构建的仿真系统之间能够交互访问;三是基于此仿真框架能够解决建模仿真的快速性、可重用性和拓展性等问题,实现仿真模型的灵活复用和按需配置。
从发展趋势上看,随着对复杂武器装备体系仿真的需求日益深入,构件化和敏捷化的仿真框架作为一种理想的软件开发理念,必将成为复杂武器装备体系仿真系统建设的关键。本文采用构件化的设计理念和敏捷化的设计方法,构建了一种面向武器装备体系的敏捷仿真框架,使得构建的仿真应用系统具有可集成、可互联、可扩展的特点,为进一步探索涉及各军兵种、跨领域跨部门的大型复杂仿真系统的开发提供方法指导和论证,为装备论证、作战概念创新、战法实验和作战仿真训练等提供重要支撑。