基于HLA分布式实时仿真系统中软总线设计
2015-12-20严琳
严 琳
(中国航工业西安航空计算技术研究所第8研究室,陕西西安 710065)
结合实际项目需求,提出一种较高性能的轻量级低耦合RTI软件架构,基于该软件架构设计并实现了分布式实时仿真系统的软总线。不同领域的工程人员直接从软总线上获取自身系统需要的仿真数据,避免了学科交叉的不便,也降低了仿真系统的设计的复杂度。
1 HLA/RTI架构
1.1 常见HLA/RTI架构分析
常见的HLA/RTI架构包括:集中式RTI软件架构、全分式RTI软件架构和层次式RTI软件架构,针对不同类型的软件项目,这些软件架构各有利弊。
集中式RTI[1]软件架构,即将所有的RTI功能均部署在服务器上,服务器是整个系统的关键。该软件架构逻辑简单、全局维护效率高、开发人员易于掌握,但由于服务器的限制,该软件架构的计算能力和网络通信能力均受限。这种软件架构适合小型仿真系统。
分布式RTI软件架构,即没有中心节点,每个仿真节点均需部署本地的RTI服务器。该软件架构易于系统规模的扩展,但其协调算法异常复杂,从而导致系统运行效率低下。这种架构适合对实时性要求不高的大型仿真系统。
层次式RTI[2]软件架构,即多服务器模式,位于不同服务器的仿真节点之间,需要通过各自所在RTI服务器进行交互。该软件架构的计算能力和网络通信能力均较强,但由于多服务器的模式,会使得整个系统设计的协调算法复杂、实时性差。这种架构适合实验室内的科研项目。
1.2 轻量级低耦合RTI架构
传统的HLA/RTI需提供联邦管理服务、时间管理服务、数据分发管理服务、声明管理服务、对象管理服务和所有权管理服务这6大服务[3-5]。本文根据实际项目需要,对标准服务进行裁剪,仅提供联邦管理、声明管理和时间管理服务,删除系统中不必要的冗余服务,在各个仿真节点上部署本地的RTI数据处理库,底层通信采用千兆以太网和反射内存卡结合的方式,保证了仿真过程的安全性、仿真节点的独立性和仿真系统的实时性。
该架构的优点是实时性强、架构简单、易于系统扩展和软件开发,降低了研发成本。该架构的缺点是当仿真节点过多时中心服务器计算能力易产生瓶颈。适合小型仿真系统,但扩展性较好。
2 仿真系统的软总线设计与实现
软总线根据各仿真节点的发布-订阅关系对数据进行采集和分发,是整个仿真系统运行的基础。仿真系统通过软总线对整个仿真系统的进行时间推进和过程控制[6]。如图1所示,软总线系统主要由5个模块组成:联邦管理服务、时间管理服务、声明管理服务、通信服务和总控服务。
图1 软总线服务框图
联邦管理服务。负责仿真节点进入和退出仿真系统的管理[7];时间管理服务。负责整个实时仿真系统的时间推进,所有仿真节点需以等步长进行推进[8];声明管理服务。负责各仿真节点之间数据订阅-发布关系[9];通信服务。负责各仿真节点之间的数据传输,需要数据实时交互的几个仿真节点上部署反射内存卡,对实时性要求不够仿真节点则部署千兆以太网来进行数据传输。
总控服务负责整个仿真系统的开始、结束和暂停[10]。
2.1 通信服务的设计与实现
反射内存卡具有不占用CPU时间、实时性强、读写方式简单、通信协议简单、传输数据包小、成本较高的特点。千兆以太网具有传输数据包大、成本较低廉、实时性弱、通信协议较复杂的特点。
根据以上的特点分析,软总线的通信服务通过反射内存卡和千兆以太网组合的方式来进行实现,千兆以太网用于各仿真节点与数据库通信等,对数据实时性要求不高的部分,反射内存卡部署在各仿真节点用于各仿真节点之间的数据通信,全面考虑系统的实时性、数据的可靠性和成本的合理性。
2.2 轻量级低耦合RTI的设计与实现
轻量级低耦合RTI的总体架构由RTI服务器端、RTI客户端以及RTI数据处理库构成。其中,RTI服务器端负责全局管理工作,单独部署在总控计算机上;RTI客户端部署在各个仿真节点的主机上,负责和软总线进行数据和控制的交互;在总控计算机和各个仿真节点的主机上还需分别部署RTI数据处理库用于消息收发的处理。轻量级低耦合RTI逻辑架构及部署方案如图2所示。
图2 轻量级低耦合RTI的逻辑架构及部署方案
2.2.1 RTI服务器端
RTI服务器端负责处理各仿真节点提出的服务请求,是RTI的主体部分。
(1)联邦管理服务。分布式实时仿真系统中的各仿真节点为联邦成员,仿真系统为联邦。RTI服务器端的联邦管理服务的相关活动包括动态新建、变更和删除联邦、联邦成员之间的时间同步以及联邦现场的保存和恢复等服务。
本文引入同步时间点机制。仿真过程分为若干阶段,在每个阶段开始处设置一个同步时间点,当联邦成员到达该同步时间点后,阻塞等待其他联邦成员完成当前阶段数据解算,当所有联邦成员都到达该同步时间点时,各联邦成员解除阻塞,继续推进。
RTI服务器端为联邦成员在联邦范围内分配一个唯一的联邦成员句柄,回复联邦成员已入联邦并标识联邦成员其句柄值,联邦成员发送的每条消息均通过联邦句柄和联邦成员句柄来标识。在仿真结束时,最后一个退出的联邦成员负责销毁联邦。联邦管理服务交互过程,如图3所示。
图3 联邦管理服务交互过程图
(2)声明管理服务。声明管理服务是为了建立联邦内各联邦成员的发布和订阅关系。声明管理服务交互过程,如图4所示。
图4 声明管理服务交互过程图
(3)时间管理服务。轻量级低耦合RTI采用保守的基于时间步长的时间推进机制。联邦成员的逻辑时间以时间步长为单位进行时间推进。
在仿真准备阶段,RTI服务器端和RTI客户端分别进行初始化,初始化当前仿真时间。
轻量级低耦合RTI在收到时间推进请求后,将更新全局时间管理表,然后通知其余联邦成员,最后发送代表允许时间推进的回调函数。
联邦成员一旦收到类型为允许时间推进的回调函数,就将自己的仿真时间设置为当前仿真时间。
2.2.2 RTI客户端
RTI客户端负责处理RTI服务器端发送来的控制信息和仿真数据的处理,是仿真节点与RTI服务器端交互的重要中间件。
RTI客户端分为4个主线程:第一个线程负责监听RTI服务器端发送来的消息,即反射内存卡中与轻量级低耦合RTI约定好的地址空间上的内容,将其放入待处理消息队列中;第二个线程负责将待处理消息队列中最旧的消息出列并发送给当前仿真节点的仿真软件。第三个线程负责监听仿真节点仿真软件发送来的消息,将其放入结果待处理消息队列中;第四个线程负责将结果待处理消息队列中最旧的消息出列将消息回复给RTI服务器端。
反射内存卡根据实际情况进行划分区域存储不同系统的数据。RTI客户端根据仿真节点的发布-订阅关系从反射内存卡相应区域获取数据和写入数据。图5为RTI客户端的工作流程。
2.2.3 RTI数据处理库
RTI数据处理库负责定义和实现RTI服务器端和RTI客户端公用的全局性数据结构。全局性数据结构包括联邦成员句柄、联邦句柄、对象类句柄、交互类句柄、对象实例句柄、属性句柄、参数句柄、逻辑时间、逻辑时间间隔、发送和接收消息所需的缓冲区。
3 结束语
在后续开发中可改进时间管理服务,使得时间管理更加灵活,提高了仿真系统的实时性和逻辑的简洁性。在后续的研究工作中,将在现有工作的基础上,完善整个仿真平台的框架,不断地引用实例对系统进行测试,以保证整个系统的正确性。
图5 RTI客户端流程图
[1]刘志国,刘太阳,王仕成,等.基于实时网络的半实物仿真集成平台研究[J].系统仿真学报,2007,19(15):3425-347.
[2]姚益平,卢锡城,王怀民.层次式RTI服务器的设计与实现[J].计算机学报,2003,26(6):716 -721.
[3]IEEE.IEEE standard for modeling and simulation high level architecture-framework and rules:IEEE Std1516.1-2010[S].USA:The Institute of Electrical and Electronics Engineers,Inc,2010.
[4]IEEE.IEEE standard for modeling and simulation high level architecture-object model template:IEEE Std1516.1-2010[S].USA:The Institute of Electrical and Electronics Engineers,Inc,2010.
[5]IEEE.IEEE standard for modeling and simulation high level architecture-federate interface specification:IEEE Std1516.1 -2010[S].USA:The Institute of Electrical and Electronics Engineers,Inc,2010.
[6]Office DMS.High level architecture run - time infrastructure[M].USA:Department of Defense,2000.
[7]Frede Kuhl R W,Judith Dahmann.An introduction to high level architecture[M].北京:国防工业出版社,2003.
[8]高霞.分层式HLA/RTI仿真平台保守机制时间管理的设计与实现[D].北京:北京邮电大学,2006.
[9]Zhang G,Zhang X,Li D.A hybrid ddm algorithm based on weight function[C].Qingdao:FSKD'08 Fifth International Conference,2008.
[10]陈健.分布式实时仿真平台中总控软件和数据库管理软件的研究与实现[D].西安:西安电子科技大学,2013.