1. 引言
经过多年作战仿真与建模的积累,各研究领域已经相继研制出各种类型的作战仿真模型,涵盖陆军合成、炮兵、防空兵、装甲兵、工程兵、防化兵、陆军航空兵、情报侦察等多兵种(专业),以及空军、海军、火箭军等其他军种的作战仿真模型。这些研究基本是针对自身的实际,开发了大量的作战仿真模型,并各自形成了相对独立的模型系统,仅有部分军事概念模型按照统一的模板进行设计,在作战仿真数学模型、程序模型方面缺乏统一规范,无法实现有效共享,在需要其他军兵种模型时往往需要重新设计和开发,增加了不必要的开发、复制、存储冗余。针对各军兵种各类仿真模型资源独立运用、分散管理的实际,运用计算机仿真建模和软件复用等技术,将异构、异类、异源的作战仿真模型统一管理、科学管理,避免重复、低效的开发,最大限度的保证作战仿真模型的可重用性,提高模型的互操作性和可信度。通过构建统一的开放式平台,实现对各类型仿真模型组件的综合集成,使其成体系化、规范化,满足军事训练、武器装备论证、作战实验研究等多种军事仿真应用的现实需要。
服务是接口的实体化表示,通过接口的约定和协议向外部提供各种操作和功能,面向服务的方法是一种具有很好扩展性的方法,向用户屏蔽具体实现的细节 [1] 。本文采用面向服务的技术架构SOA (Service-Oriented Architecture),以仿真服务来组织和管理仿真模型资源,所有模型在UDDI (Universal Description Discovery and Integration,统一描述、发现和集成)注册为服务,通过服务发现、服务匹配等环节将仿真模型服务按需组合后提供给分布式仿真节点,实现模型的快速重构,以满足特定用户需求的仿真,这种灵活的重构方法对于分布式环境下建模和仿真的重用和组合具有重要作用。
2. 需求分析
由于标准规范的不统一,各类模型相对独立地存在于某些特定的仿真系统之中,从体系构建的角度来看,模型的构建涵盖联合战役、军种战役、合同战术、分队战术四个作战规模层次,涉及联合、陆军、海军、空军、火箭军等军兵种(专业)作战行动,包含作战行动、指挥控制、战场环境、综合作用和分析评估等类型。以这种成立体交叉的仿真模型体系为基础,同时与部队武器装备训练、模拟训练模式同步,各单位不断完善现有模型以及开发新的仿真模型,形成了能够适应我军作战实验、模拟训练需求的仿真模型体系。目前,虽然国内外已经进行了大量卓有成效的仿真模型集成研究工作,而且也初步建立了一些具有代表性的仿真模型集成框架。但也应该看到:大部分的建模与仿真活动都没有系统考虑资源的共享,不同的仿真系统往往相互独立,严重影响到建模与仿真的互操作性、可重用性和可信性,增加了不必要的开发成本和存储冗余。对于仿真模型的集成研究,主要集中于采用MDA (Model Driven Architecture)技术、组件化技术、web服务技术和可扩展框架技术等 [2] 。
美军的军事建模框架(Military Modeling Framework, MMF)是一个支持组合和多分辨率模型的框架,主要是对JSIMS中所涉及的各类模型进行有效的分类管理,以支持模型的重用。美国海军研究生院等多家研究机构及公司联合开展了可扩展建模仿真体系框架XMSF (Extensible Modeling & Simulation Framework)项目的研究。XMSF通过尽量采用许多成熟的商业化标准和框架,实现对仿真模型资源的管理。事实上,现有的模型集成框架并不能为大规模的仿真模型重用和组合提供全面支持,主要存在以下几个方面的问题:
1) 理论方法支撑不足
模型的重用和组合强调自动选择和动态组合,在分布式环境下,在语义和语法层模型集成框架难以实现模型的准确描述和自动理解,对于模型服务的形式化描述缺乏全面的领域本体和描述逻辑,目前还没有一个完善的针对军事仿真领域的本体库,这就使得在对模型的描述过程中,往往会导致计算机在识别上的偏差,基于本体的描述逻辑的方法还不能很好地解决军事仿真领域的诸多问题,难以为更高和更多层次的模型组合提供支持,特别是仿真模型的重用和可组合性缺乏相应的方法论指导,更缺乏可实施的工程化方法。
2) 模型组件服务描述不足
服务发现是模型重用和快速重构的关键,而服务描述是服务发现的基础,由于军事领域的模型服务描述起步较晚,且应用只是在某些特定领域,缺乏统一的描述规范。同时,现有的可组合仿真工程方法主要是通过元数据实现相关检索,缺少智能化、主动式分析,使得在组合性分析中难以自动推理,即使是规范的概念模型描述方法也不能进行自动转换成机器可理解、可识别的信息,服务的接口语法和静态功能语义的描述能力限制了对仿真模型动态行为的表示,往往在模型服务选择过程中出现偏差。
3) 模型组合语义方法不足
由于作战仿真模型相对复杂,同一种模型可能因为开发单位的不同而存在较大差异,一是没有统一描述规范,二是由于封装后模型之间难以实现理解上的一致性,使得在语义理解出现偏差,而影响组合效果。同时,由于军事仿真服务与其他服务相比,特别是在服务组合过程中,更加复杂,存在多种关系,如指控关系、隶属关系、继承关系、通信关系等,对这些关系的描述缺乏有效的方法和手段,对于关系的描述和推理难以满足实际要求 [3] 。
随着仿真技术的不断发展和仿真应用范围的日益扩大,实现模型资源的快速、大范围重用变得越来越迫切,仿真模型集成和组合应用需求也越来越明确 [4] 。其迫切的军事需求主要体现在以下几个方面:
1) 可以有效指导模型开发、减少重复建设、提高模型共享服务水平,以满足不同决策层次、决策对象对作战仿真推演过程进行有效控制的需要,为诸军兵种在时间、空间、信息、任务等方面的作战协同提供模型支撑;
2) 通过描述逻辑、本体映射、服务描述等方法实现模型封装,有助于作战模型资源的集成、组合和管理,实现作战仿真模型体系构建过程中主要环节的规范化、标准化,满足服务访问的统一性;
3) 通过统一集成框架,实现模型开发、存储与共享的一体化,将分散的、异构异源的模型资源进行科学和规范管理,最大限度地保证模型的重用,充分发挥模型的军事效益,避免重复投资、重复建设,提高模型的可信度和互操作性。
针对上述存在的问题和面临的迫切需求,本文基于SOA设计方法和技术架构,通过对模型服务描述、服务发现、服务组合和集成应用等构建仿真模型集成框架,满足大规模仿真模型资源共享应用的需求。
3. SOA的集成框架分析
框架对于相似的问题能够提供一种统一解决方案,仿真模型集成框架首先应该是一个开放系统的体系结构,其目标是能够动态地组装组件,并将组件以服务的方式注册,然后向各分布式用户提供仿真模型服务。采用基于SOA的架构实现框架集成,基于Web服务标准,从更一般的服务概念出发,通过重构和组合模型服务来满足不同用户的仿真需求。在作战仿真模型组件库的基础上,构建基于SOA的作战仿真模型集成框架,实现模型组件库、建模知识库和模型数据库的统一组织与管理,为模型资源集成与重用奠定基础。从目前的需求来看,这样的模型资源管理系统必须采取一种分布式的管理方式,因此需要解决好下面两个问题:一是模型库动态管理问题;二是柔性集成框架设计问题。
面向服务体系结构SOA能够解决分布式环境下模型集成的需要,是一种通过网络互联能完成特定仿真任务的独立功能实体实现的一种软件体系结构。通过服务之间定义良好的接口和协议联系起来,使构建在各种系统中的服务能以一种统一、通用的方式进行交互。SOA将功能封装成服务,对外只提供了定义的接口,而屏蔽了内部功能实现的细节,能提高模型功能的重用性和组合的快捷性。
SOA是一种松散耦合的软件架构,它可以根据需求通过网络对松散耦合的仿真模型组件进行分布式部署、组合和使用,主要有以下特点:1) 松散耦合服务。在SOA中,主要有服务请求者、服务提供者和服务中介,而服务提供者与使用者之间并不需要建立紧密的约束关系,而是通过通用描述、发现与集成服务建立彼此间的联系,在耦合结构上具有松散性。2) 透明服务。服务需求者只需要对服务的功能具体描述,UDDI会根据能够自动分析并提供相应的服务,对于服务使用者而言享受的是一种透明化的服务,无需关心服务在哪里以及如何实现等细节。3) 自治组合服务。服务的范围和功能可大可小,体现的是一种组合应用的理念,这种服务可以是单一的也可以是由多个组合而成的,但这种组合是按照一定的规则自动进行的,并不需要人为操作。4) 标准化服务接口。服务之间的通信、交互、描述、传输以及访问等均采用标准化的协议、语言、接口和方法进行,使得服务可以按照有序、顺畅的方式进行。
通过对以上特性分析可知,SOA架构能为模型集成框架提供更加灵活的构建方式,基于SOA构建集成框架可以从底层架构的级别来保证仿真应用的松耦合性以及灵活性,适应不断变化的仿真应用环境,实现模型的按需服务。基于SOA的思想可以为不同组织、不同领域提供仿真模型服务、仿真应用服务、指挥控制服务等,从而可以通过重构和组合模型服务方式满足不同用户的仿真分析、仿真实验、仿真训练和仿真论证需求。结合作战仿真的需要,通过对SOA的分析,构建基于SOA的仿真模型集成框架具有以下优势:
1) SOA具备较为成熟的开放标准,在服务组合和服务集成应用方面具有很好的应用实例,能够满足当前仿真用户的实际需求。
2) SOA支持分布式部署和访问方式,具备大规模网络环境下的模型快速重构和组合的能力,减少仿真模型的重复开发,对于分布式仿真而言能够提供快速建模能力,模型间的互操作性和可扩展性增强,提高仿真应用的层次和水平。
3) SOA能够提供模型的自治管理和动态更新机制,模型的共享水平得到提升,使得建模仿真的专业化、标准化程度增强,进而能解决模型、仿真、环境和应用表示的一致性问题,提高模型组合的有效性。
4) 基于标准化的服务接口,能简化模型交互过程中的复杂操作,提高模型访问效率,能够对已有模型和新开发模型进行有效组合和集成,提高建模仿真的可伸缩性和灵活性;
基于SOA的模型集成框架的目标是为了快速构建和组合模型,为建模仿真人员提供模型服务开发、注册、部署、发布、发现和组合,使模型运用具有一定的规范性、灵活性和可扩展性。基于SOA的集成框架需具备如下能力:
1) 快速重构能力
重构是组合的基础,重构的目标是实现模型服务能力、服务交互关系和服务应用配置的重新构建实现更为复杂的功能,避免重复建模。模型的组合应用通过服务的方式实现,模型服务的描述、调用和发现分别采用WSDL、SOAP和UDDI实现,上述这些技术主要是解决服务描述、服务调用与交换、服务发现的问题,也是进行快速重构和组合的技术基础。
2) 灵活组合能力
在面向服务的集成框架下,任何模型的应用本质上均是通过服务组合得到的,服务组合实际是对原子服务、基本服务和复杂服务之间的相互组合。基于一种有效的组合建模方法,通过开发一些原子、基本模型,并采用即插即用的方式组合后直接获取,并根据业务模型的逻辑推理自动创建过程模型。
3) 动态调度能力
模型服务动态调度包含资源调配与服务执行两个阶段,资源调配主要是针对不同的仿真任务提供多种调度策略,负责模型服务的统一调度,实现与各管理站点模型资源调度器的协作。服务执行主要是通过标准的服务协议进行交互,并根据仿真用户需求使用相应的分布式仿真调度策略执行仿真服务。
4) 服务管理能力
在SOA体系架构下,模型服务的管理主要是针对描述与实现的管理。服务描述必须能够满足服务组合算法的查询要求,并建立服务描述解析模型,主要对服务信息、功能信息和状态信息等进行自动分析推理。服务实现管理主要是对服务的注册和部署、分类管理、服务发现,以及组合方案的选择等,需要为仿真模型的组合建模过程提供自动化支持。
4. 基于SOA的设计思路
基于SOA体系架构,采用“资源 + 服务 + 平台 + 应用”的柔性设计思想构建作战仿真模型集成框架,体系结构设计基于一套实用的系统构建技术标准和工具,按照这些标准研制的各种组件相互可以即插即用,这种方式可以使仿真模型根据联合作战任务要求进行灵活重组,并形成最佳的组织结构。在该集成框架下,将模型的重构、装配、封装、组合和调用等以服务的方式呈现,根据用户定制需求,将各种服务动态组合起来,快速为用户提供个性化的仿真模型和组合服务,实现模型的重构、组合和集成调用。
面向服务的体系结构SOA将应用程序的不同功能单元分别作为服务,采用松散耦合的方式对服务和应用进行集成,服务之间的交互通过接口和协议完成,按照分布式构造方式,将模型功能以服务的形式提供给最终用户或供其他服务调用,实现服务组合、集成与管理,隐藏了服务内部细节和交互数据的复杂性,降低组合和集成的复杂性,增加作战仿真应用的灵活性。
其中,SS Profile表示仿真服务的概述(Simulation Service Profile),SS Model表示仿真服务的模型(Simulation Service Model),SSWSDL表示仿真服务的网络服务描述语言(Simulation Service Web Services Description Language)。
基于Web服务的SOA的关键是使用标准的服务接口和松耦合的连接,区分为服务发布、服务管理和服务调用等,具体如图1所示,其实现过程如下:① 建立服务注册中心,实现服务的发布和管理。② 服务发布者提供模型服务描述文档,并在UDDI中心完成注册,对入库模型进行业务逻辑进行封装,实现统一接口。③ 服务注册成功后,在UDDI和模型库之间建立映射关系,UDDI中心并不存放实际的模型,而是关于模型描述的信息以及访问模型的位置信息。④ 服务使用者提交服务请求。通过语义抽取和组合分析后,经过解析被封装成SOAP消息,读取UDDI中的模型服务信息。⑤ 按照服务发现、服务匹配和服务组合的过程获取服务句柄。⑥ 建立服务绑定关系,由服务代理调用服务,直接提供给用户。其中,SS Profile表示仿真服务的概述(Simulation Service Profile),SS Model表示仿真服务的模型(Simulation Service Model),SSWSDL表示仿真服务的网络服务描述语言(Simulation Service Web Services Description Language)。
![](//html.hanspub.org/file/5-1540934x9_hanspub.png)
Figure 1. The procedures of publishing, managing, and invoking for service
图1. 服务发布、管理与调用过程
图2描述了基于SOA的仿真服务开发流程,在SOA框架下,模型服务由服务实体和服务描述组成,服务实体是具有一定功能的服务,通过注册中心部署在服务器中,服务描述是对服务所能提供功能的具体描述,是进行服务发现和服务组合的基础。一方面,建模人员根据建模仿真需求明确要解决的问题,通过对问题的抽象构建仿真域中各要素的关系,建立军事概念模型,同时完成各类组件模型的设计,根据需要将仿真模型封装为原子服务、基本服务、复杂服务和组合服务,在生成相应的服务描述文档并在UDDI中心注册的同时对外发布服务。另一方面,仿真用户根据自身的应用需求,将其转换为仿真服务需求,通过服务解析、组合策略分析等手段在UDDI中发现满足需求的仿真服务子集,经过服务匹配、服务选择和服务组合等环节确定仿真服务,完成相关服务参数配置后提交至服务代理实现服务调用与模型运行。
从上面的分析可知,在面向服务的体系架构支撑下,仿真应用的分解不是按照以往的实体分解方法,而是按照“功能”的分解方法,首先选择满足功能需求的仿真服务集合,然后根据语义匹配和逻辑推理分析确定模型组合方案,完成特定的仿真应用服务。这种集成框架能够提供更细重用粒度的仿真模型,将模型功能转化成了服务能力,为开展更为灵活的仿真应用提供了基础条件。
5. 基于SOA的仿真模型集成框架设计
采用基于SOA架构的方法来实现作战仿真模型集成框架,在该集成框架下,基于MDA方法实现模型的统一转换,采用组件化技术实现对模型的重构、装配,并以服务的方式实现模型封装、组合和调用等,使不同军兵种模型、不同层次模型和不同粒度的模型以一种通用、统一的方式进行交互和共享。参照面向服务的体系结构,采用分层描述的方法,设计一种基于SOA的仿真模型集成框架IFSM-SOA (Integrated Framework of Simulation Model based on Service-Oriented Architecture),将仿真模型集成框架分为四层,分别是:资源层、组件层、服务层和应用层,具体结构如图3所示。
5.1. 资源层
资源层主要解决资源的描述、组织和管理等功能,包括计算资源、设备资源、服务器资源和本体库、
![](//html.hanspub.org/file/5-1540934x10_hanspub.png)
Figure 2. Development of simulation service based on SOA
图2. 基于SOA的仿真服务开发
![](//html.hanspub.org/file/5-1540934x11_hanspub.png)
Figure 3. The structure of combat simulation model integration framework service-oriented
图3. 面向服务的作战仿真模型集成框架总体结构
知识库、模型库等数据资源,该层是集成框架的基础。模型库主要用于存储各类模型,是系统的核心部分,在逻辑上模型库是各种模型的集合,在软件内容上,则由许多计算机程序组成 [5] 。模型库采用关系数据库的组织结构形式,在数据库的表空间中存储模型和相关文档的标识信息、模型名称、类型、性质、所属兵种、功能描述等信息,模型导入需要按照一定的规范完成。
5.2. 组件层
将不同层次、不同类别、不同粒度的模型以组件的形式进行封装,使得模型库在组织形式上表现为可重用的模型组件库。可重用的模型组件库不同于以前的模型对象库,模型组件库保存的是一些经过测试的模型组件,这些模型组件遵从一定的标准或规范完成对各种模型的统一描述,并生成模型组件描述文档 [6] 。组件层主要包括组件描述、组件定义、组件构建工具、组件验证、组件配置、组件装置、组件重构和组件封装等,其主要任务是完成模型的描述、重构和装配。组件层的核心是通过基于接口的程序设计完成对入库模型的标准化描述。每个组件都会提供一个定义好的接口,可以与其他组件进行交互。用户或其它应用程序可以使用这些接口将模型库中的模型应用到自己的程序中,与其他组件或应用程序联合运行。
5.3. 服务层
采用web服务的方式实现对模型的封装,能够屏蔽不同层次、不同粒度、不同军兵种模型间的异构性,便于统一运用和共享。Web服务定义了如何描述、访问服务以及如何发现和验证相关的服务。Web服务层由服务描述、服务注册、服务发布、服务查询、服务发现、服务组合、服务调度、服务传输和服务管理等组成,在屏蔽下层资源异构的同时便于为应用层提供更高级的服务,其中服务操作和交互如图4所示,首先由仿真模型服务工厂通过实例创建形成相应的仿真服务实例,并交由服务提供者向注册中心发布,完成服务注册。当服务请求者根据需求输入想要的服务时,先在注册中心进行查询并绑定,然后通过服务调用向服务请求者提供。
通过服务的组合实现模型的组合,主要包括模型发现、模型适配、模型选择、模型组合分析和模型组装等过程。
1) 模型适配:组件经过组装后,模型被封装成原子服务,并对每个原子服务模型进行规范化描述,在此基础上提取其语义,在此基础上运用服务匹配算法进行语义相似性运算,得出匹配相似矩阵,生成新的模型。
2) 模型选择分为:依据标准化描述规范,提取所需要的复杂模型(组合后的模型)特征信息,通过自动解析与分析,对模型组件库中的模型进行识别、选择。
3) 模型组合:web服务具有组合的功能,即服务组合,通过服务组合可以实现更为复杂的服务,将每一个原子模型封装成一个服务,在执行复杂模型时实际上就是执行多个原子服务的一种特定组合,通过服务组合实现不同分辨率的模型聚合,最终将组合后的模型进行统一封装,实现模型集成应用 [7] 。
4) 模型组装:主要是针对组件模型的装配,组装是通过系统化构建方法实现模型功能的具体方式,
![](//html.hanspub.org/file/5-1540934x12_hanspub.png)
Figure 4. The description and operation interaction for model service
图4. 模型服务描述及操作交互
通过模型框架快速配置生成组合模型,并通过组件装配模型与代码模板自动生成部分模型执行程序 [8] 。本文设计一种用于模型组装的连接件模型,如图5所示,主要由连接件描述、连接件方式、连接件接口、组件装配执行顺序、连接件实现、连接件属性、数据处理、服务接口等组成。
模型组装就是将需要组装的模型组件的多个服务接口绑定到组装后的组件服务接口上,并建立起多个服务接口之间的连接关系和交互方式,通过连接件实现不同组件之间的协调运行和访问。连接件是组件装配的基础,模型组件组装机制是连接件完成各模型组件交互的具体体现。
5.4. 应用层
仿真模型集成框架的应用层构筑在服务层上,针对不同的应用,提供仿真模型服务,应用层主要针对模型定制应用、模型测试应用、模型验证应用和作战仿真应用等,通过统一的仿真模型服务访问接口实现模型的集成应用,主要包括模型访问、模型控制、模型交互、模型调度和模型运行等,在模型组合的基础上进行集成应用 [9] 。用户启动应用程序通过API向服务层提出模型服务请求,服务层将任务请求解析后,提取仿真模型应用的语义信息,通过模型调度管理器调用模型服务,实现模型服务实例的封装,驱动模型资源完成任务,基于Web服务的模型组合应用逻辑结构如图6所示。
首先,模型服务客户端提交模型服务应用请求,通过提供相应的关键词在应用领域、服务功能两个层次上对仿真模型服务请求进行约束。其次,根据用户服务描述需求、结合已有的用户兴趣和关注领域,自动解析用户需求,按照最佳匹配的方式提供包含服务功能的多种组合方案。再次,客户端根据用户服务管理中的领域信息向用户进行领域导航,同时还将用户兴趣模型及行为记录在知识库中,以便下次向用户提供更为方便的查询,产生的组合方案会存储到模型知识库中以备以后复用 [10] 。然后,模型服务注册中心存储并定时更新各种模型服务信息,并发布已经注册的模型服务,并提供相关模型服务的信息。最后,通过模型服务管理器完成对模型服务的发现、查询、修改和管理等,按照模型服务组装方案定义的服务调用的关系,对选定的模型服务进行连接和组合。
模型管理与服务的过程如图7所示,主要区分为模型管理和模型服务两个部分。模型管理主要是通过统一的框架对模型资源进行组织、存储以及运行过程的全方位管理,利用组件化技术对作战仿真模型进行重构、装配、封装、组合,建立可扩充、可修改、易维护的作战仿真模型库,为模型服务提供数据支持,模型管理主要解决模型如何分解存储到模型库、模型如何运行、模型如何组合使用的问题;模型服务在模型管理的基础上,通过本体映射的方式实现模型映射,基于模型驱动架构完成模型转换,以Web服务的方式实现作战仿真模型的共享,使不同军兵种、不同层次、不同粒度的模型以一种通用、统一的
![](//html.hanspub.org/file/5-1540934x14_hanspub.png)
Figure 6. The combination application of model based on web service
图6. 基于web服务的模型组合应用
![](//html.hanspub.org/file/5-1540934x15_hanspub.png)
Figure 7. The combination application of model based on web service
图7. 模型管理与服务的过程
方式供用户使用。
6. 结束语
本文采用面向服务的设计思想和方法,构建了基于SOA的作战仿真模型集成框架,实现模型组件库、建模知识库和模型数据库的统一组织与管理,参照面向服务的体系结构,采用分层描述的方法,设计了四层仿真模型集成框架:资源层、组件层、服务层和应用层。采用组件化技术实现对模型的重构、装配,并以服务的方式实现模型封装、组合和调用等,使不同类型、不同层次和不同粒度的模型以一种通用、统一的方式进行交互和共享,满足了作战方案推演、作战单元编配论证、作战效能仿真分析、指挥训练评估等多类不同需求的军事仿真应用。
基金项目
中国博士后科学基金资助项目(2015M552148)。