背景
分布交互仿真环境是仿真技术和网络技术相结合的产物,由分散在各地的仿真设备通过局域网或广域网互联而成。由于分布交互仿真技术自身的优越性和实用性,目前已由军事领域的应用研发推广应用到教育、医疗、商业等非军事领域。随着仿真规模的扩大和仿真精度的提高,仿真网络的数据流量日益膨胀。早期的分布交互仿真系统(分布交互式仿真(Distributed Interactive Simulation, DIS)、协议仿真),使用广播协议数据单元(Protocol Data Unit, PDU)的方式在不同的仿真实体之间进行数据交换,这一数据交互方式是加重网络负担的主要原因。
高层体系结构(High Level Architecture,HLA)是在继承以往仿真体系结构和仿真协议优势的基础上形成的新一代仿真体系结构,它以提高仿真系统的重用性和交互性为主要目标,采用组播PDU为主、广播PDU为辅的混合式通讯方式。由于HLA的数据交互引用过滤机制(声明管理和数据分发管理(Data Distribution Management,DDM),提高了建立在HLA标准之上的仿真系统的可扩展性。1
声明管理是基于数据类型过滤,而DDM是基于数据值过滤,因此,DDM的目标数据具有更细的粒度,比声明管理具有更好的精简数据流量的能力,从而DDM可以更好地提高HLA的过滤效果。目前,DDM的方法主要有基于区域的DDM、基于grid的DDM以及基于全域的DDM等。
简介通常,DDM分为兴趣和可用性表达、匹配、发送数据等3个阶段。以HLA为例,在HLA框架中,由于使用DDM机制,系统资源随系统规模急剧增加的趋势得到很大的缓解。DDM的基本原理是开发仿真任务的局部性,利用数据过滤机制限制冗余数据的产生和数据的接收范围。
仿真任务的局部性是指受仿真模型等约束条件的限制,在任意时刻某一仿真实体只与系统中所有实体的一个子集相关,此子集被称为实体的‘感兴趣集合”(interest group),感兴趣集内部的实体之间才需要交换数据。在现实世界中,这种现象很常见。Macedonia等人的研究表明,在大规模分布交互式仿真中,一个实体的感兴趣集一般只占系统实体集的一小部分,而且随着规模的增大,感兴趣集的大小趋于稳定。在DDM机制中,按照一定的原则(如仿真实体相关性)建立相关的实体映射关系,并根据这种映射关系,控制了数据发送以及接收的范围,从根本上解决了冗余数据耗费系统资源极大的问题。
例如:
基本DDM的结构由多维坐标系统构成的路径空间组成。在此空间中,联邦成员在接收数据(订购)或发送数据过程中表达对某一区域的兴趣。这种兴趣表示如下:
(1)订购区域(SU)定义路径空间坐标区间来表达订购联邦成员的兴趣范围。
(2)更新区域(RU)定义路径空间坐标区间来授予对象在该路径空间中的位置。
在仿真过程中,订购区域和更新区域的尺寸和位置随着联邦成员的兴趣改变或在该路径空间中位置的改变而变化。
DDM允许联邦成员通过对象类和属性名来定义它所要接收和发送的数据类型。每个联邦成员通过被选路径空间维的延伸来决定哪些联邦路径空间对他们有用,以及定义这些路径空间的分配,或者联邦成员本身特别感兴趣的逻辑区域。
在订购区域中,联邦成员通知运行时间框架( Run Time Infrastructure, RTI)在所描述的延伸区域中它所感兴趣的数据。而在更新区域和从联邦成员到RTI的更新区域与具体对象实例关联区域中,该联邦成员能控制所有加入的该联邦成员属性的参数。当对象更改时,该联邦成员要么调整关联区域的延伸,要么将该关联区域改变为另一区域。
图1描述了一个二维路径空间中包含的一个更新区域(U1}和两个订购区域(S1, S2)。在本例中,S1为盟员a的订购区域,S2为盟员c的订购区域,U1为盟员b的更新区域,U1和S1发生重叠,与U1关联的对象更新数据被RTI发送给盟员a,而与S2关联的盟员c将收不到b的更新数据。
数据分发管理机制在较小规模的联邦仿真中,可直接根据RTI声明管理DM (Declaration Management)确定的公布/订购关系,进行基于类的数据过滤,而在大规模、包含不同类型成员的联邦仿真中,为了进一步减少数据冗余量及其处理时间,要求HLA的数据分发服务必须提供有效和灵活的机制,应采用更小粒度的数据选择机制,由此引进了数据分发管理服务DDM,它包括发现对象和为了控制在成员和RTI之间传输的属性值和交互信息数据流所采用的机制。DDM是实现HLA/RTI的关键技术之一,它采用基于值的数据过滤方法,是在基于类的基础上进一步增强联邦成员精简数据需求的能力,实现有效的、具有可伸缩性和简单易用接口的数据分发管理服务。2
数据分发管理内部机制
按照HLA标准所开发的仿真应用之间可以实现互操作,仿真部件可以得到最大程度的重用。而为了使仿真系统有良好的可扩缩性,在分布交互仿真领域开展了许多富有成效的研究工作。如外推技术、数据压缩技术、数据打包技术及静态实体管理等。这些技术在以前的仿真交互标准中,如DIS中得到了应用,在一定程度上提高了系统的可扩缩性,但没有从根本上解决仿真数据广播发送造成资源需求量急剧上升的趋势。
为此HLA专门提供了基于组播通信的数据过滤机制,即数据分发管理DDM,它作为HLA六大管理服务之一,在构建复杂大系统仿真中起着关键作用。
数据分发管理的目的是减少仿真运行过程中无用数据的传输和接收,从而减少网络中的数据量,增强构建大型虚拟世界的能力,提高仿真程序的实时性。
数据分发管理完成数据过滤总共需要四步工作:区域((region)定义、区域匹配、组播组分配和数据传输,如图2-1所示。
其中:
a)区域定义:每个成员向RTI声明自己的兴趣,包括希望接收的数据和可以发送的数据的限制条件,这通过定义区域来实现;
b)区域匹配:数据分发管理机制将订购区域与公布区域进行比较,确定区域的相交情况。匹配的结果为发送方和接收方的一个映射;
c)组播组分配:根据区域匹配结果,建立数据通道,即分配组播组;
d)数据传输:通过上一步建立的连接,仿真数据从发送方传输到接收方。
值得注意的是,HLA虽然定义了数据分发管理的机制,但它并没有规定数据分发管理的具体实现方法,在实际的仿真开发过程中,随着应用领域和仿真目的的不同,各种联邦对数据分发管理的要求可能千差万别,因此RTI开发人员通常为DDM提供一个灵活的机制,作为联邦开发人员可以根据工程的实际要求设计专门的代码进一步缩小公布和订购需求,从而有效地扩展RTI的数据分发能力。
数据分发管理中区域大小在复杂大系统中,存在着数以千万计的仿真实体,各个实体不断地公布自己的信息和订购其它成员的信息,以决定自己下一步的状态或决策自己下一步的行为。其中每个实体具有多个属性,一个属性又可以关联多个区域,从而产生大量的区域信息,在实现RTI时,一般将大量的区域信息存放在服务器上,服务器需要同时负责时间推进和数据管理,这样服务器需要进行大量的区域匹配计算,导致消耗大量的CPU时间,使得服务器成为整个仿真运行的瓶颈,不适合复杂大系统实时仿真的需求}ZS}0
同时随着对仿真实时性要求的提高,在仿真推进过程中,由于大多数实体是运动的,必须频繁地更新公布或订购区域,为了满足实时的要求,加入新的区域和退出原来的区域就应有足够快的反应时间和处理时间,而现实中总因为区域过大而无法做到这一点。为改变这种情况,通常采用减少服务器的区域匹配计算量来提高仿真运行的整体性能。因此对于不同实体,选取多大的区域才是合适的是需要研究的问题。
区域的类型在RTI中,存在着两种区域,缺省区域和普通区域。
缺省区域由RTI在系统初始化时创建,它是一种特殊的区域,包含FED文件中的所有维,缺省区域能够与任何普通区域相交。在客户/服务模式体系结构中,当缺省区域位于客户方时,它属于RTI代理,不属于任何联邦成员,不能够由成员来进行删除,当成员调用声明管理服务中的订购服务时,RTI利用缺省区域来标识该服务与数据分发管理中的订购服务的区别,同时为以后对象实例的更新和交互的发送做好准备。当缺省区域位于服务器方时,RTI服务器也利用该区域标识声明管理服务和数据分发管理服务中订购服务的区别。缺省区域在客户和服务器之间利用特殊的标识符来进行传递。
普通区域是由联邦成员通过调用创建区域(Create Region)服务创建,它属于该联邦成员,仅能由该联邦成员更改和删除,成员可以利用该区域有效地向联邦中的其它成员表达自己的公布和订购兴趣。它只是在数据分发管理中才会被应用。这里所要研究的就是根据工程实际需要而创建的普通区域。
区域尺寸的选取在分布交互仿真应用中,若区域选择较小,则区域变化就会过于频繁,仿真节点机之间将忙于交换订购信息,若区域选择较大,刚将消弱数据分发管理的过滤效率。因此,在仿真应用时,针对不同实例,需要选择合适的区域大小。
最小区域
在大规模分布式仿真环境中,对象实例有显著的多样性和动态性,例如,在虚拟战场环境中,包含的对象可能有:飞机、坦克、导弹、舰艇和火炮等,由于它们的运动速度相差很大,它们选取的区域也应该有所不同;对于同一实例,如静止的坦克,在山区运动的坦克以及平原上高速运动的坦克,它们选取的区域也应该不同。由此可知,对于高速运动的实例,区域的选取应该较大,以免频繁地区域更新,反之则可适当减少。
问题讨论
某些类型的实例可能有特殊的要求。例如,一个实例可能产生很大的声音,或者发出明亮的光芒,导致在较远的距离处就可以看见或听到该实例,从而必须将实例放置在一个较大尺寸的区域内。为了表示该种情况,实体通过调整R值来考虑增强的可视性。在某些军事演习中,坦克顶部可能装有聚光灯,从而使得该坦克能够在正常坦克的两培距离处看到它。考虑到这种特点,R从5m调整到l0m,则相应的静态情况下最小区域尺寸由24m调整到48m,动态情况下最小区域尺寸由4593m调整到4617m。
数据分发管理通用模块由于数据分发管理的程序流程基本固定,为了提高程序的开发效率,有必要进行数据分发管理通用模块DDMCMT(Data distribute management Current Module Tools)的研究,该模块能够接收来自真实设备的普通报文,并转换成HLA方式公布出去,并将仿真设备中产生的HLA对象属性和交互参数转换成真实设备所需要的普通报文结构发送给真实设备,界面上应能显示任意一条发送和接收的报文,以判断收发的正确与否,根据仿真演练的实际需要随时能增加或删除一条需要发送或接收的报文。
DDMCMT的功能要求DDMCMT要完成实际需求,应包括五个方面功能:打开FED文件和数据结构文件、对象类属性(或交互类参数)与普通报文的匹配、HLA方式和普通报文方式的添加或删除、仿真代码生成和文档生成功能[fs}l0
1.打开FED文件和数据结构文件
联邦或联邦成员运行生成所需的FED文件和真实设备中普通报文的数据结构文件在系统的设计之初就进行过详细地设计,它是总体设计人员必须提供的两个文件,如果根据实际演练的需要,要对演练的内容进行改变,那么首先要修改的就是这两个文件,为了实现FED与普通报文的信息的正确交互,就应先分别打开这两个文件,为下一步的匹配作准备。
2.对象类属性(或交互类参数)与普通报文的匹配
联邦或联邦成员运行生成所需的FED中无非是一些对象类和交互类,普通报文的数据结构中也大至是这些实例的属性或交互的信息,它们之间通常有一定的对应关系,实际中可能通过像连线一样将它们一一对应起来,这样就可以在FED文件与普通报文之间建立起一个对应关系。
3. HLA方式和普通报文方式的添加或删除
添加和删除一条信息是系统仿真中常遇到的问题,如果没有DDMCMT要添加一条信息,程序就要完全从头设计和编写,浪费了大量重复劳动的时间,设计该工具的目的就是为了使添加和删除变得更加方便,通过极少的修改就完成所要求的任务。
4.仿真代码生成功能
仿真代码生成的功能是根据用户匹配的报文信息自动生成可执行的DDMCMT代码。根据用户匹配的报文信息,自动添加与RTI接口的部分、程序的控制代码及运行界面控制部分,最终生成完整的DDMCMT执行代码。
5.文档生成功能
DDMCMT文档应该包含该仿真的对象类属性与普通报文中数据结构的对应表格、交互类参数与普通报文中数据结构的对应表格,另外还包括联邦及该DDMCMT的名称、对象类和交互类的公布定购关系、公布定购数据和运行标志、与时间有关的数据和信息等。
DDMCMT的设计与实现为了完成上面的功能,必须对DDMCMT进行系统的设计,下面将根据设计的流程和各接口之间的数据流向进行详细的设计和实现。
DDMCMT的设计流程
DDMCMT开发流程就是先打开FED文件和数据结构文件,然后将对象类属性(或交互类参数)与普通报文的匹配,接着用户根据需要进行HLA方式和普通报文方式的添加或删除,经过VC+十编译、连接并运行就可以得到DDMCMT仿真代码,如图所示。
DDMCMT总体设计
DDMCMT总体设计方框图如图5-2所示。整个系统分为三大部分:DDMCMT、报文转换模块、自动生成模块。DDMCMT部分主要是系统界面的设置部分;报文转换模块将完成普通报文到HLA(或HLA到普通报文的转换),并将其按照一定的格式存储到HLA设置文件中,同时它还可以将参数传递给DDMCMT框架代码生成模块,供生成代码时使用:自动生成部分在联邦运行支撑环境下完成框架代码和文档资料的生成。