飞行训练仿真系统中实时数据同步模型设计与实现

2017-04-11 01:05林万洪晁建刚
载人航天 2017年2期
关键词:数据仓库队列仓库

林万洪,邓 华,熊 颖,晁建刚,杨 进

(1.中国航天员科研训练中心,北京100094;2.中国航天员科研训练中心人因工程重点实验室,北京100094)

飞行训练仿真系统中实时数据同步模型设计与实现

林万洪1,2,邓 华1,熊 颖1,晁建刚1,2,杨 进1

(1.中国航天员科研训练中心,北京100094;2.中国航天员科研训练中心人因工程重点实验室,北京100094)

针对下一代航天飞行训练模拟器分布式仿真系统对仿真数据管理与实时同步的高要求,分析了国内外仿真系统数据同步技术发展现状,在前期任务数据分发模型的基础上,提出了基于组播、共享内存和订阅发布技术的局域网仿真数据高速同步方法,设计了一种基于数据语义标识的通信模型。仿真试验表明:此模型合理高效,与上一代同步技术比较,同步时钟提高到10 ms内,相同节点数目时,40 ms仿真周期内数据量提高了近一倍,开发效率提高了一倍以上。

飞行训练仿真系统;分布式仿真;数据同步

1 引言

空间站任务中要求飞行训练模拟器能够提供给航天员空间站全任务流程的训练支持,并同时能够满足多个航天员乘组在模拟器进行训练。上述需求变化对模拟器设备的研制及使用带来了新的挑战,基本的体系结构需要从原来以具体训练任务计算为中心、数据专项使用转向多任务、综合场景、协同训练的模式。这种转变为模拟器数据通信带来了新的挑战,包括:

1)数据规模的增大,需要仿真的设备增多,仿真模块成数量级增长;2)舱段及舱载设备增加很多;3)数据的使用方式改变,从单一用户到多用户;4)多设备协同对仿真数据的一致性要求提高;5)适应新设备不断加入的需求,要求适应仿真参数可动态变化;6)新一代训练模拟器开发模式的转变要求数据通信作为最基础的模块能够支持上层应用对系统进行快速升级。

飞行训练仿真系统的数据通信技术总体上可以分为集中式、分布式两类。近年来,由于计算的复杂化,分布式成为主流。先后经历了DIS、HLA、DDS等为代表的不同的通信模型结构阶段[1]。 DIS[2]、HLA[3]、DDS[4]等体系架构本身是为通用的通信过程设计的,考虑全面,但与飞行训练模拟器结构相对单一、数据可控、可预先分配仿真资源等特点不匹配,容易导致系统复杂度增加,开发维护成本攀升,不利于系统的运行和维护。

我国航天飞行训练仿真数据同步技术根据自身任务特点采取了不同技术路线,先后建立了基于套接字环状结构模型、基于 ACE(Adaptive Communication Environment)中间件的通信模型[5]以及基于数据分发的数据服务模型[6]。其中最为完善的基于数据分发的数据服务模型在仿真参数更新、仿真节点管理等方面依然有效,但是当仿真节点增多,各节点对数据访问需求不一致时,通信效率呈明显下降趋势。原因一是节点数目及数据量增加较多,且仿真参数需要动态调整;二是目前基于数据分发的数据服务模型会在内存中形成多份数据,对多份数据拷贝进行管理,消耗系统资源;三是将所有的数据更新信息发送给所有的节点进行同步,但实际上节点仅需要个别参数或者某类参数。因此,数据通信面临着仿真节点间的通信方式和数据分发服务指向性管理等问题。

本文在基于数据分发的数据服务模型的基础上提出新的虚拟数据仓库管理方法解决上述问题,采用基于共享内存体系结构模型,在发布基础上增加了订阅方法以进一步增强通信的有效性和指向性,作为面向下一代飞行训练仿真系统的通信模型,简称为飞行训练模拟器仿真架构通信模型(Communication Model of Simulator Simulation Architecture,CMoSSA)。

2 数据同步模型系统设计

CMoSSA利用了JGroups[7]、HLA及DDS的部分概念,参考部分异构网络的设计方法[8]。它由节点、虚拟数据仓库、接入点等组成,包含了节点管理、数据管理、数据同步以及权限管理等。基本原理如图1所示。

CMoSSA总体上仍属于客户机⁃服务器模型,在服务器端包含系统层,网络中间件,虚拟数据仓库,接入点以及SSA系统服务等五个不同的层级。在客户端包含系统层,网络中间件,虚拟数据仓库,接入点以及仿真节点,其中仿真节点是由用户自定义实现。系统层,网络中间件,虚拟数据仓库,接入点构成了CMoSSA的基本运行架构,SSA系统服务提供了管理 CMoSSA的各类服务。CMoSSA提供数据访问接口(接入点)对系统内数据等进行访问,实现了仿真节点与数据分离,在同一仿真设备上多个仿真节点可同时访问虚拟仓库。数据的访问采取发布订阅模式,根据访问情况对发布订阅数据进行动态调整,使数据的同步与更新处于高效的过程。

CMoSSA的系统层主要负责与计算机操作系统或者是底层硬件通信。网络中间件利用成熟的中间件技术如ACE、ZeroMQ等负责网络数据的传输[9⁃10]。虚拟数据仓库是通信模型的核心,承载着数据管理、更新、逻辑处理等功能。接入点是仿真节点与虚拟数据仓库的接口,提供给上层程序开发使用,负责与应用之间的数据传递。SSA系统服务提供了仿真服务器发现,计算域管理,系统逻辑处理,数据管理等服务。

在上述结构中,各仿真节点间(特别是本地节点之间)数据的同步在共享内存等方法基础上采用了以数据为中心的发布/订阅机制以及周期同步技术。数据发布、传递和接收行为按照标准化过程进行,数据分发服务的应用范围通过权限管理完成,而系统中数据的描述、相互关系及初始化定义建立于实时内存数据库之上,数据的描述可直接映射于仿真节点的语义交互接口。

3 虚拟数据仓库模型及数据管理

3.1虚拟数据仓库模型设计

CMoSSA虚拟数据仓库的设计是在数据分发机制基础上进行的。新的设计具有两个显著的特征:一是采用共享内存提高通信效率;二是建立了主备份状态模式,提高系统的可靠性。

虚拟数据仓库包含了本地虚拟仓库和网络虚拟仓库,本地数据仓库解决几个进程之间的节点数据同步问题,网络虚拟仓库解决网络上各节点之间的数据同步问题。根据实时性及数据更新的可靠性等要求,两种仓库采取了不同的策略,本地数据仓库主要利用共享内存方式,将公用的节点数据信息等建立一份镜像,所有进程按照读写策略进行操作。网络虚拟仓库采用了以UDP多播为主的周期同步模式,在每台终端设备具有一个虚拟数据仓库的同步镜像,如图2所示。

虚拟数据仓库之间的链接通过一个BUS模式的总线结构完成,每个本地虚拟数据仓库的数据更新需要发布时,通过总线发布给其他在域内的虚拟数据仓库,局域网环境中通过UDP多播的方式实现,本地环境中通过共享内存的方式实现。

为保证数据在虚拟仓库中的可靠性,设计了备份数据中心,对虚拟数据仓库的所有关键信息进行实时备份。本文采用一种成对互为备份的双子星模式,同时将关键信息发送给主备两台机器,在SSA系统服务主机崩溃时信息仍能够保留。在正常工作时备机仅作为一台普通客户端运行,像其他客户端一样从主机获取更新信息,但同时它也能从其他客户端获取更新事件。其体系结构设计如图3(a)所示。

此模型在服务器发送给客户端的更新事件中加入心跳,这样作为备机的客户端可以知道主机是否异常。为了判断主机节点是否异常,客户端专门为心跳设置一个“投票”套接字,来协助判定主机节点是否异常,然后使用数据快照请求来“投票”接收新的主机数据。其状态转换过程表示如图3(b)所示。主备机切换的步骤为:客户端检测到主机不再发送心跳,因此转而连接备机,并请求一份新的数据快照;备机开始接收快照请求,并检测到主机异常,于是开始作为主机运行;备机将待处理列表中的更新事件写入自身状态中,然后开始处理其他客户端的数据快照请求。

3.2数据注册与销毁

为了解决仿真数据动态变化的需求,采用了数据使用时进行注册和销毁的方法,使得上层仿真节点可以对数据仓库中的数据进行动态管理。

数据在使用前需要向虚拟数据仓库进行注册,注册过程包括请求注册、空间分配以及镜像更新等三个过程。请求注册时将数据的属性按照规范向虚拟仓库发起请求,虚拟仓库检索仓库中是否已存在此数据,如果不存在,将允许数据进行注册;如果已经存在,通知注册客户端数据已经存在,不能重复注册。允许注册后,系统对数据所需要的内存空间等进行分配,并将分配后的内存表信息进行存储,然后通知系统完成了空间分配。在完成空间分配后,系统将分配后的虚拟仓库状态同步到各个终端,保证终端镜像的一致性。

上述过程中如果多个客户端同时注册数据,会存在注册数据竞争一致性的问题。如图4所示,A和B将数据P进行注册,按照设计的逻辑时序可完成正常注册。但在注册查询状态的过程中,由于是通过不同节点对网络虚拟数据仓库进行访问,可能存在并行访问状态时序关系管理不一致,获取到相同的状态属性结果,使得两个节点注册的数据P均成功,在系统运行下一步计算过程时,数据访问会出现意外的结果。

本文采用集中注册以及并行访问串行化两种方式解决上述问题。集中注册是指所有数据通过一个客户端进行注册。并行访问串行化是指将所有的申请访问进入串行队列,防止了并发带来的问题。数据的销毁过程是与注册相反的过程,但是销毁的数据并不会在系统中立即消失,只是打上销毁的标志,表示此数据处于销毁状态,系统会周期检测所有数据状态,在检测周期到来时将所有需要销毁的数据统一销毁,并同步更新、镜像到所有的虚拟数据仓库客户端。

3.3权限控制

数据的动态管理必然会涉及权限的问题,在本模型的数据权限管理中,引入了作用域的概念,通信模型中的虚拟数据仓库及其中的数据属于一个或多个域,域主要由数据写入者、数据读入者、发布者、订阅者及全局空间的信息仓库几个对象组成。一个域代表一个通信范围,只有同一个领域的发布者和订阅者才能交互。

为了系统的访问安全,设计的每个节点以及数据都具有自己访问权限,节点具有超级、普通以及匿名等权限,数据具有可读、可写等权限。

数据可写、可读、可拥有是指此数据在仿真系统中是否能够被其他节点进行所定义的操作,数据可写是指可以被其他的节点所写,可读指其他节点只能进行读操作。为了保证数据同步时的一致性,每个数据需要附属在一个节点上作为其父节点,父节点对自己的数据拥有所有权限。

超级节点可以修改仿真系统的参数,如数据同步时间、数据的访问权限、将某些数据销毁、修改数据的参数值、发送全局的信息通知等。普通节点可以修改节点所属的数据属性,包括数据的访问权限、数据的参数值等。匿名节点只能观察系统,不能做任何操作。

4 基于发布订阅的同步方法

4.1同步模型设计

为了减少重复数据在内存中的镜像以及在网络的传输,特别是针对本地节点之间以及数据仓库之间的数据通信,在发布机制的基础上设计了对应的订阅机制。发布订阅系统主要有使用2g⁃precedence模型来处理分布式事件的顺序和复合事件的检测,基于扩充了时序模型的有限状态机进行描述,基于事件代数的事件复合监测机制和基于ECA规则的事件处理机制。但是目前整体而言对发布订阅系统中的复合事件时序逻辑模型研究较少[11]。本文描述的发布订阅分为仿真节点与虚拟仓库之间以及两个虚拟仓库之间两个过程。仿真节点与虚拟仓库之间采用实时自动订阅模型,虚拟仓库之间采用定期更新模型。发布订阅系统不仅支持对单个事件的订阅,而且支持对“事件模式”或“复合事件”的订阅。即:当各个发布者所发布的一系列事件所组成的事件序列满足某一条件时,才通知节点,改善了仿真计算节点的可扩展性和性能,实现了自动订阅模型。

由于订阅者在单线程工作时,为了满足实时性要求,对计算要求很高,在本文所进行试验的计算机上,数据量达到10 M以上的时候,会占用大量的单一CPU资源,而且无法使用其他的CPU。因此,设计了并发模式对工作量进行分配,将工作量拆分成独立并行的片进行处理,按照不同的分类方法对数据进行分片订阅,其发布订阅模型结构如图5所示,图中以3个分片示意,多个分片结构增加订阅、发布的描述即可。

CMoSSA中与发布订阅管理紧密相关的就是数据缓存,所有的数据缓存是基于发布订阅的需求进行设计。CMoSSA在实现过程中根据终端节点对虚拟数据仓库的访问过程,采用了两个队列控制[12]最近时间访问过程算法,对节点访问的数据进行缓存,加快访问速度和减少虚拟仓库与节点之间的数据传输,原理如图6所示。

算法类似于 LRU⁃2,不同点在于本算法将LRU⁃2算法中的访问历史队列改为一个FIFO缓存队列,最近时间访问过程算法有两个缓存队列,一个是FIFO队列,一个是LRU队列。当数据第一次访问时,将数据缓存在FIFO队列里面,当数据第二次被访问时,则将数据从FIFO队列移到LRU队列里面,两个队列各自按照自己的方法淘汰数据。具体算法过程为:1)新访问的数据插入到FIFO队列;2)如果数据在FIFO队列中一直没有被再次访问,则最终按照FIFO规则淘汰;3)如果数据在FIFO队列中被再次访问,则将数据移到LRU队列头部;4)如果数据在LRU队列再次被访问,则将数据移到LRU队列头部;5)LRU队列淘汰末尾的数据。通过两个队列实现了较高的命中率,内存消耗比较接近于LRU⁃2算法,但对于最后访问的数据来说,本算法会减少一次从原始存储读取数据或者计算数据的操作。

4.2时序控制

时序控制在仿真系统的数据同步中尤为重要,各个仿真节点之间在逻辑上存在着对时间顺序的要求。为了实现有效的时序控制和通信效率之间的平衡,设计了时钟激励模式和事件激励模式两种通信时序关系。时钟激励模式是通过一个标准的时钟源按照仿真步长的要求,按序推进,在本方法中,按照10 ms的时钟步长。事件激励模式是对仿真系统中的重要事件进行响应,以消息、回调等方式通知节点。

仿真节点的实现过程中与时间相关性小的仿真参数,统一使用时钟激励模式进行推进,每个本地虚拟数据仓库根据时钟激励对所定义的数据在一个时间周期内完成同步,同步过程包括了数据的接收、分发以及对外发送等过程。重要的仿真时间节点以及事件节点,使用事件激励模式进行设计,包括飞行训练仿真系统的教员控制、飞行指令、操作指令等信息。

从系统角度分析,由于时间相关性小的仿真参数占了90%以上,通过时间激励方式有效提高了系统的通信效率,同时没有损失关键信息,实现了对整个仿真系统的有效时序控制。

5 仿真验证

完成上述模型设计,在局域网内对其进行仿真验证。试验系统服务器与客户机的CPU为In⁃tel Core i7 3.07 G,4 G内存,Window XP Profes⁃sional SP3;采用H3C S5120千兆网络交换机。试验共使用10台计算机在局域网组网测试。

试验包括单机测试、基于局域网环境的测试和主服务器故障测试,测试内容为仿真节点容量、数据同步能力、同步延时以及数据的可靠性。

仿真结果及上一代通信模型结果如见1。

对比前后两个模型的结果可以看出,与上一代同步技术比较,相同节点数目时,仿真周期内数据量提高了近一倍。上述提高来源于网络模型的改变和数据发布过程的改变。原网络模型为链式结构,数据必须严格按照所定义仿真节点优先级进行依次发布,而CMoSSA将仿真节点的关系提高到系统服务层级来处理,网络传输的过程不关心优先级。同时,CMoSSA对节点需要和发布的数据按照用户需求在数据注册时进行了分类处理,减少了冗余数据的传输,加快了系统的数据处理过程。除此以外,由于对网络传输逻辑的封装良好,开发者不需要再关注系统的传输逻辑,开发效率得以大大提高。

表1 CMoSSA与上一代模型的对比表Table 1 The comparison of CMoSSA and the former model

6 结论

下一代航天飞行训练仿真系统实时数据同步是保证仿真数据一致性的基本条件,本文设计的通信模型实现了局域网环境下多台仿真终端以及多个仿真节点之间数据的实时同步,实现了异构网络环境下的数据实时传输、同步、订阅与发布、仿真数据按名称存取等,同步效率高,满足了航天训练实时仿真计算需求。同时,仿真节点与底层的数据结构、通信方式等不属于仿真系统本身逻辑的信息隔离,使得研制飞行训练模拟器时可专注于仿真系统的逻辑实现。本通信模型可根据所依赖的仿真环境配置在单机、局域网、实时网络中使用,为单机训练设备、小型化训练设备以及大型地面设备之间的数据同步与数据共享提供了解决途径,也可推广至广域网、实装网络等。

(References)

[1] R An,G Liu,C Xing.K Hu.An overview of development of simulation integration technology[C]//World Scientific.Me⁃chanics and Mechatronics(ICMM2015):pp.086⁃1091.

[2] 张学平,单洪,邵军力.军用分布式交互仿真(DIS)原型系统的实现研究[J].系统仿真学报.1998(2):13⁃18. ZHANG Xueping,SHAN Hong,SHAO Junli.Research on distributed interactive simulation for military training[J]. System Simulation.1998(2):13⁃18.(in Chinese)

[3] 戴忠健,侯朝桢.基于HLA的分布式交互仿真系统的开发实例[J].系统工程理论与实践,2005,25(1):105⁃109. DAI Zhongjian,HOU Chaozhen.The development example of distributed interactive simulation system based on HLA[J]. Systems Engineering⁃Theory&Practice,2005,25(1):105⁃109.(in Chinese)

[4] 谢蓓,刘毅,曹万华,等.实时系统数据分布服务DDS技术综述[J].舰船电子工程,2006(2):16⁃19. Xie Bei,Liu Yi,Cao Wanhua,Li Junlin.Research on data distrubution service for real⁃time systems specification[J]. Ship Elcctronic Engineering,2006(2):16⁃19.(in Chinese)

[5] 晁建刚,沈钧毅,王羽,等.航天飞行训练模拟器技术研究[J].系统仿真学报,2009:21(21),6851⁃6855. CHAO Jiangang,SHEN Junyi,WANG Yu,et al.Study on technology of space flight simulator[J].System Simulation,2009,21(21):6851⁃6855.(in Chinese)

[6] 邓华,林万洪.飞行训练模拟器仿真体系架构[C]//载人航天工程二十年学术会议,2012. DENG Hua,LIN Wanhong.The simulation architecture of flight training simulator[C]//The manned space engineering conference for twenty years.2012.(in Chinese)

[7] Ban B,Blagojevic V.Reliable group communication with JGroups 3.x[EB/OL].(2015).http://www.jgroups.org/manual/pdf/master.pdf.

[8] 杨鑫辉,张慧翔.基于DDS的异构网络数据分发方法研究[J].计算机技术与发展,2014,24(11):57⁃60. Yang X H,Zhang H X.Research on heterogeneous network data distribution method based on DDS[J].Computer Technology and Development,2014,24(11):57⁃60.(in Chinese)

[9] 蒲凤平,陈建政.基于ZeroMQ的分布式系统[J].电子测试.2012,253(7):24⁃29. Pu F P,Chen J Z.Distributed system based on ZeroMQ[J]. Electronic Test,2012,253(7):24⁃29.(in Chinese)

[10] Lee S,Park H,Lee W J.Design of ZeroMQ⁃based coopera⁃tive simulation framework for distributed code and model com⁃ponents[J].International Journal of Future Computer and Communication,2015,4(4):258⁃261.

[11] 马建刚,黄涛,汪锦岭,等.面向大规模分布式计算发布订阅系统核心技术[J].软件学报,2006,17(1):134⁃147. MA JianGang,HUANG Tao,WANG JinLing,et al.Underly⁃ing techniques for large⁃scale distributed computing oriented publish/subscribe system[J].Journal of Software,2006,17(1):134⁃147.(in Chinese)

[12] 严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2009:156⁃190. YAN weiming,WU Weimin.Data Structure(C)[M].Tsin⁃ghua University Press.2009:156⁃190.(in Chinese)

(责任编辑:龙晋伟)

Design and Implementation of Real Time Data Synchronization Model in Flight Training Simulation System

LIN Wanhong1,2,DENG Hua1,XIONG Ying1,CHAO Jiangang1,2,YANG Jin1

(1.China Astronaut Research and Training Center,Beijing 100094,China;2.National Key Laboratory of Human Factors Engineering,China Astronaut Research and Training Center,Beijing 100094,China)

According to the higher requirements on the simulation data management and real⁃time synchronization of the next generation distributed simulation system of space flight training simulator,the development status of data synchronization technology in simulation systems was analyzed.On the basis of the data distribution model adopted by previous simulation systems,a new method of high speed synchronization of local area network simulation data based on multicast,shared memory and SUB⁃PUB was proposed in this paper.In addition,a communication model based on data se⁃mantic identification was designed.The simulation results showed that this model was reasonable and efficient.As compared with the previous generation of synchronous clock synchronization technolo⁃gy,the synchronize clock was raised up to 10ms,the ability of synchronization was nearly doubled under the same number of nodes within 40 ms simulation period,and the development efficiency was more than doubled.

flight training simulation system;distributed simulation;data synchronization

TP391.9

:A

:1674⁃5825(2017)02⁃0191⁃06

2016⁃02⁃22;

2017⁃02⁃27

总装备部预研基金(9140c770204150c77318);总装重点试验技术课题(2013SY54B1301)

林万洪,男,硕士,助理研究员,研究方向为航天飞行训练仿真。E⁃mail:acclwh@hotmail.com

猜你喜欢
数据仓库队列仓库
基于数据仓库的数据倾斜解决方案研究
填满仓库的方法
队列队形体育教案
四行仓库的悲壮往事
队列里的小秘密
基于多队列切换的SDN拥塞控制*
小猫看仓库
探析电力系统调度中数据仓库技术的应用
数据仓库系统设计与实现
消防设备