1.1.3 网络化联合仿真(NCS)
1.概念定义
网络化联合仿真(Networked Co-Simulation,NCS)以网络通信技术与并行分布式仿真技术为基础,通过构建“物理上分布、逻辑上统一、时空上一致”的分布式虚拟环境,实现异地部署的各类LVC仿真资源的数据共享与协同推进,满足联合模拟训练、装备试验鉴定、作战推演评估等多样化分布式仿真应用需求。
NCS有以下三个基本特性。
(1)一致性。一致性是NCS的重要特点和要求,所有的仿真节点能够看到状态一致的虚拟世界,不一致的虚拟世界会导致仿真交互出现各种问题。
(2)交互性。交互性是NCS的重要特征,NCS的各类仿真节点之间通过虚拟环境进行交互,并有所反馈。
(3)实时性。由于实兵实装类的仿真节点对时间有要求,过长的反馈会影响真实感,虚拟空间中的相互作用和反馈需要在较短的时间内完成。
NCS由仿真节点构成,经过精心定义的各个任务是由仿真节点执行的。仿真节点是NCS系统最重要的抽象,是连接到网络的逻辑实体,负责为进程(process)和线程(thread)分配资源、进行调度。仿真节点(一个节点可以承载一个或多个组件)是自成一体的软/硬件单元,只通过报文交换实现与环境之间的交互。
2.NCS实现途径
为了实现具有实际应用价值的NCS系统,其解决方案通常包含以下三个方面的内容。
(1)一个公共的体系结构。由于体系结构是一套指导如何建立系统的指南,因此能够互操作的NCS系统必须具有一个公共的体系结构。一个好的体系结构不需要包罗万象,只需要说明为实现它的目的所需要的最少数量的要素。TENA就是这样的一个体系结构,它只说明了特定的关键特征,将开发一个应用或系统的大多数方面留给开发人员。
(2)可进行有意义的通信。包括两个基本的部分:一是有一种公共的语言来支持不同的系统传达单一含义的各种信息,或将这些信息项组合成复杂含义的句子、陈述或概念。在现代信息技术中,公共语言通常是使用一种公共对象模型实现的。二是有一个公共的通信机制作为互换信息的一种方式。一种基于能使用多种潜在通信介质的特定公共框架的公共软件基础设施是实现这种特性最合适的方法。
(3)一种公共的上下文。包括三个重要方面:一是对环境的共同理解,如系统在哪里运行、运行环境的特征是什么等问题;二是对时间的共同理解,如它用什么来描述时间、时间是如何流逝的、任何给定系统需要何时完成哪些事情等;三是一个公共的技术过程,两个系统只有在理解(至少是在某种基本层次上理解)它们赖以发挥作用的整个过程时才能互操作,至少它们必须知道何时初始化、何时接收来自其他系统的信息、如果需要它们该如何从其他系统得到信息、何时与其他系统同步、何时停止运行等。
3.NCS与互操作
1)互操作的含义
互操作性是指两个及以上的系统或要素交换信息和使用已交换的信息的能力,它体现了系统之间协同工作的程度。NCS中的互操作意味着各自独立开发的NCS组件、应用或系统能作为某个事务过程的一部分一起工作,以实现用户所定义的NCS仿真目标。
通常我们所说的互联互通互操作其实包含两个方面的含义,一个是“互联互通”,另一个是“互操作”。互联互通是互操作的基础。简单地说,互联互通指的是基于通信网络的物理互联和信息互通,其目的是消除信息孤岛,其包含两个方面的内容,分别是全要素互联和高质量互通。其中,全要素互联指的是构建交互网络,实现信息全面互联,包括虚实要素连接、虚虚要素连接和实实要素连接;高质量互通指的是建立通信机制,实现信息互通,包括实时通信、可靠通信和安全通信等要求。
2)互操作的层级
一个聚焦互操作的体系结构允许用户运用大量不同的系统构成一个语义统一的由系统组成的系统(SoS)。但是,任何软件元素集合所需要的互操作的程度是可以连续变化的,这就是互操作层级的概念,如图1-1所示。从底到顶,每个层级描述了两个或多个元素之间的关系,它们之间的互操作程度不断增加。从底(最小互操作)到顶(最大互操作)的层次依次如下。
图1-1 互操作层级
(1)隔绝:软件是功能自包含的,且相互隔离的元素不能共享公共计算资源(如网络)。
(2)协作驻留:为了软件元素联合存在而使用特定的公共基础设施服务,当它们同时运行时,使用那些共享的资源彼此之间不会冲突。
(3)语法互操作:软件元素在该层通过消息或数据库进行数据互换实现交互。因为可互换信息,该层需要一个公共的数据模式。
(4)语义互操作:元素共享一个公共对象模型和一套公共服务,这样就充分定义了彼此“交谈”的领域。在这种情况下,系统和应用之间可能存在功能重复。
(5)无缝互操作:元素实现了集成的功能,因为它们有一个针对某个给定领域充分说明的对象和技术过程。对于一套运行在该层次的软件元素而言,各个组件的功能之间没有重叠,从而产生高效的端到端的功能和过程集成。
(6)自适应:元素在运行期间为响应条件、资源、威胁等的改变而自我组织,它们功能的执行是根据它们当前所处的环境的状况而定的。
目前,大多数NCS应用真正实现的互操作层次是语法层的互操作,但其功能非常有限。上一层互操作(语义)意味着组件和应用之间互换的信息在合适的上下文内可以被充分理解,具有更高的技术难度。
4.NCS与资源重用
可重用是指在某种不同于某个给定的组件、应用或系统原始设计的应用场景中继续使用它的能力,因此,其关注焦点在于某单个NCS仿真元素的多次使用。仿真资源通常以软件的形式存在,往往需要花费大量的人力和物力才能开发完成,因此,仿真资源重用具有非常重要的意义。
资源的可重用通常与可组合密切相关。NCS中的可组合意味着挑选集中备用的各种可重用、互操作的NCS元素(如模型组件或应用),实现“搭积木”式的快速组合、按需集成,形成一个NCS系统。
1)异构系统
异构系统指的是地域上分散、由不同的制造厂商开发、系统的硬件和软件环境各不相同、数据表示方法与精度有差异的软硬件资源,包括实兵实装、模拟器、虚兵系统、态势显示,以及导调评估等业务系统。
通常而言,系统的异构性主要体现在以下4个方面。
(1)硬件平台的异构性。系统基于的硬件平台、体系结构千差万别,数据的格式、字节顺序、存取模型与性能等都不一样,与外部输入输出设备的接口也不一致。
(2)通信网络的异构性。当今通信技术非常发达,不仅通信媒介不同,网络的拓扑结构也纷繁复杂,如星形、环形、总线形、树形等;通信方式也非常多样化,多种通信协议并存。这些都阻碍了数据包在目的端口的正确解析。
(3)应用软件的差异性。各类仿真应用软件都是基于特定编程语言和开发环境研发的,其设计和实现与特定人员和环境紧密相关,并且软件的全生命周期都是与特定的操作系统和计算机运行环境紧密耦合的。不同的仿真应用领域的软件通常没有进行统一设计,由于编程思想、编程语言等的不同,在不同信息系统内完成相同任务的执行程序之间也存在巨大的差异性。
(4)数据信息的异构性。NCS通常涉及不同地域分布的多个单位之间的协同,内部传输的数据信息量很大,这些数据信息由于缺乏统一设计,所以在语法、语义、语用等方面都存在差异性。这种差异性体现在数据的命名、格式、结构等多个方面。
2)基于NCS的异构集成
异构系统难互联、多源数据难共享的问题,一直是制约试验训练质效提升的瓶颈,NCS可以通过支持异构系统集成实现资源重用。基于NCS的异构集成可以将分散在不同地域、从事不同专业、实现不同用途的异构系统集成适配与联合运行,实现信息交互、资源共享、时空同步和协同推进等功能,支撑虚实一体NCS联合仿真环境的有序运转。各个异构系统可以作为一个仿真节点(或客户端)接入NCS系统。
3)资源重用的层次
如图1-2所示,NCS系统中的资源重用通常包含以下几个层次。
图1-2 资源重用的等级划分
(1)编程语言级。无论是面向对象仿真中的对象类,还是面向过程仿真中的子程序/函数,都是使用Eclips、NetBeans、Visual Studio等集成开发环境相关库得到的。由于编程语言的多样性(如C、C#、C++、Java等)、底层操作系统的差异性(如Unix、Windows等)、硬件平台的多样性(如Intel、GPU、FPGA等),所以这一层级的重用非常困难。例如,在Unix操作系统上使用Java开发的仿真程序,难以直接在Windows操作系统上使用C++开发的仿真应用中重用。
(2)编程框架级。依据底层设计模式的不同,仿真中的编程框架可以分为面向对象式(OOP)、面向过程式(Procedural Paradigm,PP)、面向功能式(Functional Paradigm,FP)等。在面向过程式的仿真应用开发中,还可以细分为不同的编程框架,包括事件调度(ES)、活动扫描(AS)、进程交互(PI)等。不同编程框架开发出的仿真应用难以直接进行组合与重用。
(3)仿真设计级。如果在仿真资源的开发阶段采用了相同的设计模式,仿真重用将变得非常容易。例如,面向对象模式设计(OOD)的仿真应用很容易重用采用面向对象式(OOP)开发的仿真资源。UML(Unified Modeling Language)是描述OOD的国际通用标准,能够帮助仿真开发者理解和重用已经存在的基于OOD的仿真资源。但是从仿真应用现状来看,在应用设计级的重用也是非常困难的,因为它需要不同仿真资源之间采用相同的设计模式。例如,包含差分仿真的连续系统仿真模型难以直接集成进OOP组件中。不同的仿真模型采用了不同的设计模式,很难用一种设计模式涵盖所有模型。
(4)仿真组件级。仿真组件级重用支持仿真模型的组合,一个组件可以对应一个子模型或模型组。这一级的重用可以节省开发时间和成本。但是这一级的重用也受不同组件的开发语言、操作系统和硬件环境的制约。
(5)仿真工具级。Arena、JMASE等仿真工具能够有效支撑其开发的不同仿真组件的重用。用户可以方便地在某种仿真工具上实现其仿真模型资源的重用,但是不同仿真工具开发的仿真组件之间的重用仍然非常困难。
(6)仿真应用级。如果需要重用的仿真应用恰好可以满足当前的仿真应用需求,重用是自然而然的,很多已有的仿真应用系统还可以用来满足新的仿真需求。一些仿真应用是不同的人员独立进行测试认证的,一些仿真应用没有配套的说明材料,还有一些仿真应用只有可执行程序,即使提供了源码,理解并改造源码也是一个复杂的过程,这些因素都使得仿真应用级的重用同样存在挑战。此外,已有仿真应用的重用还依赖其运行环境的兼容性。
(7)以网络为中心的仿真应用级。该层级的重用涉及基于网络实现仿真组件或仿真应用之间的互操作,通常与仿真应用的物理分布有关。HLA等分布式仿真标准是典型代表,如果一个仿真模型与HLA标准是兼容的,那么该模型可以通过HLA与其他仿真模型互联,进而实现重用。
(8)仿真概念模型级。这一层级的重用是最高层次的重用,其实现难度最大,要求通过理解已有仿真资源的概念模型开始,进而掌握相关仿真资源的应用场景和使用模式,其效果等同于针对特定的应用需求重新设计一个仿真系统或应用。
5.NCS的过程表示方法
一个NCS系统中的节点可以用一个仿真状态序列描述,如图1-3(a)所示,仿真状态可以随着时间变化,既可以是离散的,也可以是连续的,能够在事件到来的时候产生改变。如图1-3(b)所示,事件可以是用户输入、定时信息,也可以是来自其他仿真节点的消息。此外,如图1-3(c)所示,每个NCS仿真节点也可以向其他节点发送消息。
图1-3 NCS的过程表示
以包含两个仿真节点的NCS应用为例进行说明,如图1-4所示,为两个选手的乒乓球游戏仿真过程。仿真状态是球拍和球的位置,并且可以由它们各自的速度确定,事件指的是用户输入的动作(如移动球拍)。
图1-4 两个选手的乒乓球游戏仿真过程
6.NCS与SoS的关系
新功能的不断加入,仿真系统的复杂性越来越高,以致难以在单一背景下进行控制。解决该问题最有前景的技术是把大型的单一系统分解成一组几乎自主的组分系统,各个组分系统通过精心定义的报文接口进行连接。只要这些报文接口上的可靠属性满足用户的意图,那么修改组分系统的内部结构,对全局系统级服务没有任何不利影响。为此人们提出了系统的系统这个概念。
系统的系统也称体系,指的是为实现一个共同目标而相互合作的一组几乎自主的组分系统所形成的系统。其本质上是由组分系统构成的大型单一系统。然而,有的单一系统是由子系统构成的,所有子系统依据总体规划而设计,并且在一个开发组织的控制范围之内,把这样的单一系统称为子系统的系统(System of Subsystems)。如果相互合作的各个系统处于不同开发组织的控制范围内,那么由这样的系统所构成的单一系统为SoS。由此可以看出,SoS与子系统的系统的区别在于组分系统的自主程度。在SoS中,组分系统的自主性高;在子系统的系统中,子系统的自主性低。
从上述定义可知,NCS系统应该属于SoS,而不是子系统的系统。其原因在于NCS的各个组分系统被称为仿真节点,每个仿真节点通常由不同组织负责开发,具有较高的自主性,仿真节点会受到其他节点的影响,但不会被控制。