CN111966748B - 分布式空基仿真运行控制管理方法 - Google Patents
分布式空基仿真运行控制管理方法 Download PDFInfo
- Publication number
- CN111966748B CN111966748B CN202010747680.9A CN202010747680A CN111966748B CN 111966748 B CN111966748 B CN 111966748B CN 202010747680 A CN202010747680 A CN 202010747680A CN 111966748 B CN111966748 B CN 111966748B
- Authority
- CN
- China
- Prior art keywords
- simulation
- node
- time
- redis
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明的的分布式空基仿真运行控制管理方法,旨在提供一种更经济、更简便、扩展性更强的真运行控制管理方法。本发明通过下述技术方案予以实现:仿真启动前,仿真人员根据仿真想定内容确定要加载的仿真模型类型和数目,利用想定管理软件生成配置文件并存储于想定数据库;仿真启动后,仿真管理节点从数据库中获取配置文件,创建用于同步管理的Redis数据结构,仿真同步模块根据制定的仿真同步机制,从Redis指定键中获取当前仿真时间,与本地缓存的仿真时间进行比较,若获取当前仿真时间大于本地缓存的仿真时间和本仿真帧的场景信息,然后进行各自的仿真处理和网络节点的同步控制,实现异构网络环境下对整个仿真系统的调度管理功能。
Description
技术领域
本发明涉及一种分布式空基仿真的同步管理方法,主要用于空基任务分布式数字仿真领域。尤其是采用虚拟机等新技术、具有动态扩展需求的新一代空基分布式数字仿真系统。
背景技术
随着科学技术的迅速发展,计算机仿真技术已经成为分析、研究、设计控制系统必不可少的手段。由于模拟仿真的模型越来越复杂,这对计算机仿真系统的性能要求也不断提高。随着计算机网络技术的发展,便产生了分布式交互仿真技术,仿真系统结构也由集中式系统向分布式系统不断演化。分布式系统是一个庞大而复杂的系统仿真工程,管理是不可缺少的手段。分布式仿真系统是分布在各台主机上的仿真对象,采用统一策略,各个仿真对象通过相互通信实现仿真视图的一致。以网络为基础的分布式实时仿真系统必然要求各单节点仿真系统构成客户操作的时空一致的合成虚拟环境。而且数据的实时性也要求非常严格,为了实现这种实时能力,除了要求更高的处理机速度、更宽的网络带宽外,还要求软件设计者必须有手段加以控制。为了满足这些要求,对于分布式仿真系统同步管理是非常迫切和重要的任务。目前,对于分布式仿真系统的节点同步问题已有一些解决方法,比如高层体系架构HLA,他是目前分布式仿真的通用标准,他的目标是能够适应各类分布式仿真应用的要求,并支持各类分布式仿真应用之间的互操作和同步管理。HLA规范包括HLA规则(HLA Rules)、HLA接口规范(Interface Specification)、HLA对象模型模板(OMT,ObjectModel Template)。接口规范定义了在仿真系统运行过程中支持仿真成员之间互操作的6大类标准服务,其中核心服务是时间管理服务。由符合HLA接口规范开发的运行支撑环境RTI(Run-Time Infrastructure)为各仿真节点提供时间管理、仿真同步等基础服务。常用的分布式仿真类型包括真实仿真、虚拟仿真和构造仿真。真实仿真是指利用真实的演习来实现对训练以及方案的评估;虚拟仿真是指由真实的人在一个模拟的环境下操作虚拟的装备,即人在回路中的仿真,主要采用虚拟现实和计算机软件来代替真实的环境和装备;构造仿真是指仿真中的所有试题均由计算机模型产生,即由虚拟的人操纵虚拟的装备,即事件流中人的行为全部由模型实现。构造型仿真的体制主要分为集中式和分布式两种,针对大规模空基任务仿真需求,主要使用分布式仿真。分布式的仿真系统可以抽象为一组相互通过传递带时戳的消息(message)进行交互的逻辑进程(LP),消息用来调度新的事件。每个LP可以被视为一个顺序执行的仿真程序,它有一组状态变量来描述其状态,并管理一个按照时间排队的本地待处理事件队列,LP不断从该队列中取出最小时戳事件来处理。处理一个事件可能会修改该LP的状态变量,也可以发送消息为该LP或其他LP调度新的事件。每个LP都维持一个本地虚拟时间(Local Virtual Time,LVT),其值由下一个要处理事件的仿真时间确定。所有LP的LVT最小值称为全局虚拟时间(Global Virtual Time,GVT),它代表整个仿真系统内时戳最小的待处理事件的时间,也是仿真推进的标志。
分布式作战仿真是指采用协同的结构、标准、协议和数据库,用计算机网络将分布在不同计算机上的仿真节点连接起来,通过仿真实体间的互操作构成的综合仿真环境。目前,对于大规模分布式仿真,主要采用运行支撑环境RTI构建基础仿真平台,构建符合HLA构架的分布式仿真系统,遵循HLA规范定义通用的技术框架,在这个技术框架下可以接受现有的各类仿真过程的共同加入,并实现彼此的互操作,进而构造或虚拟仿真系统以及一些辅助性的仿真应用。
分布式仿真引擎是在分布式仿真系统中负责时间推进、调度运行、仿真控制、数据存储,并为仿真运行过程中的态势显示提供交互的仿真运控系统,是整个分布式仿真系统的核心。从结构来讲,分布式仿真引擎就是分布式仿真系统中与具体仿真应用无关的公共服务集合,包括对象管理、内存管理、时间推进、数据分发和时间调度等服务,其目的是为仿真实体的执行提供一个公共运行环境。分布式仿真引擎的核心功能是仿真同步管理。分布式仿真的最大问题是仿真进程的划分以及仿真系统的运行控制,每个节点上又包含多个任务更增加了运行控制的复杂性。
仿真同步管理主要实现对仿真场景推进的管理,用于保证分布式仿真中的逻辑正确性和态势一致性。如果一个分布式系统要实现实时性,必须满足的三个条,要求每一仿真应用适时的输入输出数据包。输入变量必须在本帧计算引用该变量之前,输出变量必须是当前帧的变量值要求数据接收的及时性,指每一个仿真应用在进行;要求屏蔽数据的超前接收,指每一个仿真应用在第步仿真计算时,不能接收(响应)其它仿真应用在第n步及第n步以后所发送的数据包。对于各个仿真应用的协同运行直接关系到仿真结果的正确性,要满足以上三个条件需要研究各个不同的仿真应用的顺序执行、数据等待、故障等待等控制技术。分布式仿真系统时钟同步的技术支撑在仿真过程中,要运用合理的时间管理机制来保证仿真应用之间协调运行,特别是在实时的仿真系统中,时钟同步是实现实时性的前提。所谓时钟同步,就是通过一定的算法将各节点的逻辑时钟趋于一个共同时间基准,使各节点的逻辑时间与该时间基准的偏差小于给定的误差范围。这个共同的时间基:前者称为绝对时钟同步,后者称为相对时钟同步。目前主要存在两种推进方式:基于时间步长推进、基于事件推进。时间步长推进方式中各模型拥有自己的仿真步长,根据仿真步长逐步推进,每次处理完成后向前推进一步,周而复始直至仿真结束,仿真时间以步长为单位连续。事件推进方式中模型每处理一个事件,仿真时间便推进至该事件所带的仿真时戳,与物理时间不构成任何比例关系,仿真时间离散而不连续。对于事件推进方式,在分布式仿真中,由于节点的分散独立和消息传输的时延,往往会导致事件时序发生错乱,这将造成仿真结果不可信。仿真同步管理通过底层实时数据交互机制实现分布式节点之间的状态获取和推进信息发布。
实时数据交互主要负责仿真模型输入输出数据的交互。目前,国内在对实时性要求较高的分布式仿真系统中主要使用反射内存网作为基础通信平台。在互联网领域,广泛使用Redis作为数据交互基础平台,Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API的Redis技术,Redis是一种遵守BSD协议,是一个高性能的key-value数据库。是一个开源的、网络化的、基于内存的高性能分布式键值数据管理系统。具有读写速度快(单服务器插入处理速度超过8万条/秒)、数据交互模式多,事务满足原子性、一致性和隔离性等优点,善于处理高并发、高响应的应用需求,且支持Linux、UNIX、OSX、Windows等主流操作系统。
反射内存网是通过高速网络连接传输存储器映象实现信息和数据共享的一种实时通讯技术。由反射内存卡和反射内存交换机构成,在分布式系统中实现内存至内存的通讯,提供了高效、可靠的通信机制。用户不需要使用显示的消息传递原语,只需像访问本地内存一样对共享存储器直接进行读/写操作就能实现多节点通信,方便用户开发。
反射内存网需要专用的反射内存卡和反射内存交换机,这使得分布式仿真系统的构建和扩展与底层硬件环境形成了较强的耦合关系,存在诸多不足之处:
首先,对硬件环境依赖性强,这带来了经济型、扩展性、兼容性以及维护性等一系列问题。使用反射内存网构建仿真系统,仿真计算机上必须安装反射内存卡。当前常用的128MB大小的GE公司的PCI-5565型号反射内存卡单价约2.5万/块,8端口多模反射内存交换机单价约4.5万/台,极大的增加了仿真系统构建成本。同时,随着当前空基作战仿真场景规模越来越大、模型计算复杂性越来越高,使得仿真系统所需仿真计算节点的数目具有较高的变化性,而不是一个定量,因此要求仿真基础环境具有较好的弹性扩展能力。而受反射内存卡采购数或反射内存交换机端口数限制,增加仿真计算节点时需要新采购同型号反射内存卡或淘汰原有交换机,扩展性较差,难以满足未来大规模空基作战仿真需求。
其次,数据交互量较小,难以支持大数据量仿真环境。反射内存网的最大信息交互量受反射内存卡上的存储器限制,目前主要有128MB和256MB两种,即分布式仿真系统中通过反射内存网络交互的数据不能超过256MB。以构建某空基作战任务仿真环境下的高逼真电磁环境为例,20个区域、10000个离散点和1000个辐射源(每个点处的功率用1个FLOAT64参数描述)的电磁仿真计算结果数据大小约为1.5GB,远远大于反射内存卡能提供的数据交互大小。因此,基于反射内存网的分布式仿真引擎已难以满足未来复杂空基作战仿真需求。
同时,对新的仿真技术支持较差。目前,随着云计算、虚拟化等技术的发展,新的分布式空基仿真系统也开始采用SOA思想并通过虚拟机等技术加载运行仿真模型,而反射内存网络无相关驱动,难以支持虚拟机技术在新的仿真系统中应用。
总之,基于反射内存网络的分布式仿真引擎已难以满足未来分布式空基仿真需求。
发明内容
本发明的目的针对上述现有方法存在的不足之处,提供一种适用场景更为广泛、更经济、更简便、扩展性更强的分布式空基仿真运行控制管理方法。
为了实现上述技术目的,本发明采用以下技术方案,一种分布式空基仿真运行控制管理方法,具有如下的技术特征:基于Redis分布式缓存将仿真时钟的哈希hash散列表,各模型仿真处理状态的哈希hash表、各模型处理输出信息的哈希hash表以及仿真全局态势信息的string存储于Redis数据库中;仿真启动前,仿真人员根据仿真想定内容确定要加载的仿真模型类型和数目,利用已有想定管理软件生成配置文件并存储于想定数据库MySQL中;仿真启动后,由仿真管理节点进行仿真同步控制,仿真管理节点从数据库中获取配置文件,根据制定的Redis数据结构设计规范创建用于同步管理的Redis数据结构,写入当前场景信息和仿真时间;各仿真节点启动后,仿真同步模块根据制定的仿真同步机制,调度管理节点运行各自的同步监控线程,并将本地缓存的仿真时间初始化为0,然后周期的从Redis指定键中获取当前仿真时间,与本地缓存的仿真时间进行比较,若获取的当前仿真时间大于本地缓存的仿真时间,则表示仿真场景发生了推进,仿真节点从Redis指定键中获取本仿真帧的场景信息,然后进行各自的仿真处理和网络节点的同步控制,实现异构网络环境下对整个仿真系统的调度管理功能。
本发明相比于现有技术具有如下有益效果:
降低了仿真系统和底层物理环境的耦合性。本发明从工作流技术的角度和协作模式的需求出发,建立了分布仿真工作流的过程模型、组织模型、资源模型和信息模型。仿真启动前,仿真人员根据仿真想定内容确定要加载的仿真模型类型和数目,利用已有想定管理软件生成配置文件并存储于想定数据库(如MySQL)中;仿真启动后,由仿真管理节点进行仿真同步控制,仿真管理节点从数据库中获取配置文件,根据制定的Redis数据结构设计规范创建用于同步管理的Redis数据结构,写入当前场景信息和仿真时间;采用集中式仿真推进机制确保仿真系统的逻辑同步,提供阻塞式和非阻塞式两种同步方式适应不同仿真推进需求,基于Redis对分布式仿真进行运行状态监视、推进控制与同步管理,在满足仿真实时性要求的同时,降低了仿真系统和底层物理环境的耦合性,节省了系统的建设费用,提升了系统的可扩展性,并可有效支撑基于虚拟机的新一代分布式仿真系统。
降低了分布式仿真系统的设计难度和开发难度。本发明充分利用Redis的易用性优势,建立易于开发人员理解和使用的推进管理数据结构,包括用于存储仿真时钟的hash表,用于存储各模型仿真处理状态的hash表、用于存储各模型处理输出信息的hash表以及用于存储仿真全局态势信息的string。并利用Redis提供事务机制满足数据读写的原子性、一致性和隔离性等优点,保证分布式节点间数据交互的可靠性。相比现有技术使用反射内存网时,开发人员需要对内存地址进行规划使用、设计数据读写保护策略和编写相应保护中间件,本发明大大降低了分布式仿真系统的设计难度和开发难度,减少了系统设计的复杂性,使开发人员集中注意力在业务逻辑上
适用场景更为广泛。本发明仿真同步模块根据制定的仿真同步机制,运行各自的同步监控线程并将本地缓存的仿真时间初始化为0,然后周期的从Redis指定键中获取当前仿真时间,与本地缓存的仿真时间进行比较,若获取的当前仿真时间大于本地缓存的仿真时间,则表示仿真场景发生了推进,仿真节点从Redis指定键中获取本仿真帧的场景信息,然后进行各自的仿真处理,通过基于Redis的集中推进式策略和协议来实现仿真场景的有序推进。并提供阻塞式和非阻塞式两种推进模式,以满足不同的仿真场景需求。在保证系统各节点严格同步的非阻塞式推进模式的基础上,进一步提供推进时间步长按仿真节点可调,而非推进时间全局唯一的使用方式,使本发明的能够适用于各类分布式空基作战仿真,具有很强的适用性。
本发明适用于空基作战任务分布式数字仿真领域。尤其是采用虚拟机等新技术、具有动态扩展需求的新一代空基作战任务分布式数字仿真系统。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明的分布式空基仿真运行控制管理架构示意图。
图2是图1的Redis数据库示意图。
图3是本发明驻留在仿真管理节点上的仿真同步管理模块的流程图。
图4是本发明驻留在仿真节点上的仿真同步模块的流程图。
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
具体实施方式
参阅图1、图2。根据本发明,基于redis分布式缓存将仿真时钟的hash表,各模型仿真处理状态的hash表、各模型处理输出信息的hash表以及仿真全局态势信息的string存储于Redis数据库中;仿真启动前,仿真人员根据想定数据库中存储的的仿真想定信息和仿真模型信息,确定要加载和管理的仿真模型对象,利用已有想定管理软件生成配置文件并存储于想定数据库(如MySQL)中;仿真启动后,由仿真管理节点进行仿真同步控制,仿真管理节点从数据库中获取配置文件,根据制定的Redis数据结构设计规范创建用于同步管理的Redis数据结构,写入当前场景信息和仿真时间;各仿真节点启动后,仿真同步模块根据制定的仿真同步机制,调度管理节点运行各自的同步监控线程并将本地缓存的仿真时间初始化为0,然后周期的从Redis指定键中获取当前仿真时间,与本地缓存的仿真时间进行比较,若获取的当前仿真时间大于本地缓存的仿真时间,则表示仿真场景发生了推进,仿真节点从Redis指定键中获取本仿真帧的场景信息,然后进行各自的仿真处理和网络节点的同步控制,实现异构网络环境下对整个仿真系统的调度管理功能。
创建包含仿真同步模块和Redis数据库的基础环境,采用集中式仿真推进机制确保仿真系统的逻辑同步,提供阻塞式和非阻塞式两种同步方式适应不同仿真推进需求。由驻留在仿真管理节点上的仿真同步模块进行仿真同步控制,驻留在仿真节点上的仿真同步模块进行仿真同步响应处理,并将仿真场景信息发送给仿真节点上的其他模块和获取仿真节点的计算结果。
本仿真帧处理完成后,仿真节点将处理结果写入Redis指定键中,并将该节点在Redis中用于存储处理状态的标识更新为本帧处理已完成,仿真管理节点写入仿真时间和场景信息后,根据同步类型进行阻塞式同步和非阻塞式同步处理,阻塞式同步处理时,仿真管理节点周期轮询Redis中存储的各仿真节点的处理状态标识,若所有节点本帧处理已完成,则表示本仿真帧的处理已完成,可以推进到下一仿真帧,否则继续周期轮询,直到所有仿真节点更新了其处理状态标识。若为非阻塞式同步处理,仿真管理节点以系统仿真周期定时器事件为主进行同步处理,系统仿真周期定时器事件产生时,若此时有仿真节点未更新其处理状态标识,仿真管理节点不等待,进行推进到下一仿真帧的处理。仿真管理节点从Redis中读取各仿真节点的输出,生成新的场景信息,根据系统仿真步长更新仿真推进时间,然后将新的场景信息写入Redis,并将Redis中各仿真节点的处理状态标志更新为无意义,最后将仿真推进时间写入Redis。循环执行以上过程,直至仿真结束或仿真管理节点收到仿真停止命令。
参阅图3。仿真启动后,驻留在仿真管理节点上的仿真同步管理模块接收仿真初始化命令,初始化完成后等待接收仿真初始化命令,从想定数据库(如MySQL)中获取配置信息,根据相应信息,创建用户同步管理的Redis数据库,上报初始化完成消息,接收仿真启动命令,获取当前仿真场景信息,写入Redis数据库,根据物理时钟和各仿真节点的仿真推进步长,生成仿真时间并写入Redis数据库。
收到命令后获取配置文件,根据制定的Redis数据结构设计规范,创建用于同步管理的Redis数据结构;根据配置文件中此次仿真的仿真节点数目和信息,采用Hash结构动态创建用于存储各仿真节点仿真推进时间的仿真时钟Hash表、用于存储各仿真节点处理状态标识的Hash表、用于存储各仿真节点计算输出的Hash表;采用String结构创建用于存储战场气象信息的String、用于存储电磁环境信息的String。
仿真同步管理模块上报仿真初始化完成消息,等待接收仿真启动命令,接收到仿真启动命令后,启动仿真同步周期处理线程,进行仿真同步处理,获取初始仿真场景信息,写入环境气象信息string、电磁环境信息string,然后根据物理时钟和各仿真节点的仿真推进步长,生成各仿真节点的仿真时间,根据仿真节点逻辑ID,写入仿真时钟Hash表;访问仿真节点处理状态标识Hash表,仿真同步管理模块从Redis数据库中获取各仿真节点的仿真处理状态标识并检查,判断各仿真节点是否处理完成,若当前同步模式为阻塞式同步,分别判断是否仿真推进时间到和/或是否所有仿真节点均处理完成,若存在仿真节点未处理完成,则继续周期轮询Redis中的仿真节点处理状态标识Hash表,若所有仿真节点的处理状态标识均为已完成,则表示本仿真帧的处理已完成,仿真系统可以推进到下一仿真帧。仿真同步管理模块读取仿真节点计算输出Hash表,将仿真节点计算输出汇总、格式化处理后生成新的仿真场景信息,写入环境信息string、和电磁环境信息string;否则返回,继续从Redis数据库中获取各仿真节点的仿真处理状态标识并检查,直到所有仿真节点均将仿真处理状态标识更新为已完成。
仿真同步管理模块从Redis数据库中获取各仿真节点的仿真处理结果,生成新的全局仿真场景信息,并写入Redis数据库,将仿真节点处理状态标识Hash表中各仿真节点的处理状态标识更新为无意义,确保下一个周期不会读取到旧的状态标识;
仿真同步管理模块根据物理时钟和各仿真节点的仿真推进步长,生成新的仿真时间,并写入Redis数据库,根据仿真节点逻辑ID,写入仿真时钟Hash表,本仿真周期同步推进完成,回到从Redis数据库中获取各仿真节点的仿真处理状态标识并检查步骤,继续下一仿真周期的同步处理,循环执行以上过程,直至仿真结束或仿真管理节点收到仿真停止命令。
若当前同步模式为非阻塞式,仿真同步管理模块,以仿真系统仿真周期定时器事件为主进行同步处理,若存在仿真节点未处理完成且仿真推进时间未到,则继续周期轮询Redis中的仿真节点处理状态标识Hash表;若仿真推进时间到,此时有仿真节点未更新其处理状态标识为已完成,则仿真同步管理模块不等待,进行推进到下一仿真帧的同步处理,继续完成后续处理。
参阅图4。对于驻留在仿真节点上的仿真同步模块运行后,将本地缓存的仿真时间初始化为0,创建并启动各自的同步监控线程;根据本仿真节点的逻辑ID,周期的从Redis数据库中获取本节点的仿真时间,从仿真时钟Hash表中获取当前仿真时间,然后与本地缓存的仿真时间进行比较,若获取的当前仿真时间大于本地缓存的仿真时间,则表示仿真场景发生了推进,使用获取的当前仿真时间更新本地缓存的仿真时间,更新本地缓存的仿真时间。
仿真同步模块从Redis数据库中获取本帧场景信息,读取环境string、字符串string信息和电磁环境string,获取本仿真帧的环境信息,对仿真节点进行仿真计算,完成仿真计算后,根据仿真节点逻辑ID,将仿真计算结果写入仿真节点计算输出Hash表;根据更新为已完成,仿真节点逻辑ID,将仿真计算结果写入Redis数据库,并将Redis本节点的仿真处理状态标识更新为已完成,同时也把仿真节点处理状态标识Hash表中本节点的本帧处理状态更新为已完成,本仿真周期同步推进完成后,回到周期的从Redis数据库中获取本节点的仿真时间步骤,继续下一仿真周期的同步处理,循环执行以上过程,直至仿真结束。
若获取的当前仿真时间不大于本地的缓存的仿真时间,则继续周期访问仿真时钟Hash表,循环执行以上过程,直至仿真结束。
当仿真节点增加时,只需在其运行的计算机上部署仿真同步管理模块即可,无需额外增加硬件。
尽管上述已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权力要求及其等同物限定。
Claims (10)
1.一种分布式空基仿真运行控制管理方法,具有如下的技术特征:基于Redis分布式缓存将仿真时钟的哈希hash散列表,各模型仿真处理状态的哈希hash表、各模型处理输出信息的哈希hash表以及仿真全局态势信息的string存储于Redis数据库中;仿真启动前,仿真人员根据仿真想定内容确定要加载的仿真模型类型和数目,利用已有想定管理软件生成配置文件并存储于想定数据库MySQL中;仿真启动后,由仿真管理节点进行仿真同步控制,仿真管理节点从数据库中获取配置文件,根据制定的Redis数据结构设计规范创建用于同步管理的Redis数据结构,写入当前场景信息和仿真时间;各仿真节点启动后,仿真同步模块根据制定的仿真同步机制,调度管理节点运行各自的同步监控线程,并将本地缓存的仿真时间初始化为0,然后周期的从Redis指定键中获取当前仿真时间,与本地缓存的仿真时间进行比较,若获取的当前仿真时间大于本地缓存的仿真时间,则表示仿真场景发生了推进,仿真节点从Redis指定键中获取本仿真帧的场景信息,然后进行各自的仿真处理和网络节点的同步控制,实现异构网络环境下对整个仿真系统的调度管理功能。
2.如权利要求1所述的分布式空基仿真运行控制管理方法,其特征在于征:创建包含仿真同步模块和Redis数据库的基础环境,采用集中式仿真推进机制确保仿真系统的逻辑同步,提供阻塞式和非阻塞式两种同步方式适应不同仿真推进需求,由驻留在仿真管理节点上的仿真同步模块进行仿真同步控制,驻留在仿真节点上的仿真同步模块进行仿真同步响应处理,并将仿真场景信息发送给仿真节点上的其他模块和获取仿真节点的计算结果。
3.如权利要求2所述的分布式空基仿真运行控制管理方法,其特征在于征:仿真帧处理完成后,仿真节点将处理结果写入Redis指定键中,并将该仿真节点在Redis中用于存储处理状态的标识更新为本帧处理已完成,仿真管理节点写入仿真时间和场景信息后,根据同步类型进行阻塞式同步和非阻塞式同步处理,阻塞式同步处理时,仿真管理节点周期轮询Redis中存储的各仿真节点的处理状态标识,若所有节点本帧处理已完成,则表示本仿真帧的处理已完成,推进到下一仿真帧,否则继续周期轮询,直到所有仿真节点更新了其处理状态标识。
4.如权利要求3所述的分布式空基仿真运行控制管理方法,其特征在于征:在非阻塞式同步时,仿真管理节点以系统仿真周期定时器事件为主进行同步处理,系统仿真周期定时器事件产生时,若此时有仿真节点未更新其处理状态标识,仿真管理节点不等待,进行推进到下一仿真帧的处理,仿真管理节点从Redis中读取各仿真节点的输出,生成新的场景信息,根据系统仿真步长更新仿真推进时间,然后将新的场景信息写入Redis,并将Redis中各仿真节点的处理状态标志更新为无意义,最后将仿真推进时间写入Redis,循环执行以上过程,直至仿真结束或仿真管理节点收到仿真停止命令。
5.如权利要求1所述的分布式空基仿真运行控制管理方法,其特征在于征:仿真启动后,驻留在仿真管理节点上的仿真同步管理模块接收仿真初始化命令,初始化完成后等待接收仿真初始化命令,从想定数据库中获取配置信息,根据相应信息,创建用户同步管理的Redis数据库,上报初始化完成消息,接收仿真启动命令,获取当前仿真场景信息,写入Redis数据库,根据物理时钟和各仿真节点的仿真推进步长,生成仿真时间并写入Redis数据库。
6.如权利要求5所述的分布式空基仿真运行控制管理方法,其特征在于征:仿真同步管理模块收到命令后获取配置文件,根据制定的Redis数据结构设计规范,创建用于同步管理的Redis数据结构,根据配置文件中此次仿真的仿真节点数目和信息,采用Hash结构动态创建用于存储各仿真节点仿真推进时间的仿真时钟Hash表、用于存储各仿真节点处理状态标识的Hash表、用于存储各仿真节点计算输出的Hash表;采用String结构创建用于存储环境气象信息的字符串String和存储电磁环境信息的String。
7.如权利要求6所述的分布式空基仿真运行控制管理方法,其特征在于征:仿真同步管理模块上报仿真初始化完成消息,等待接收仿真启动命令,接收到仿真启动命令后,启动仿真同步周期处理线程,进行仿真同步处理,获取初始仿真场景信息,写入环境气象信息string、电磁环境信息string,然后根据物理时钟和各仿真节点的仿真推进步长,生成各仿真节点的仿真时间,根据仿真节点逻辑ID,写入仿真时钟Hash表;访问仿真节点处理状态标识Hash表,仿真同步管理模块从Redis数据库中获取各仿真节点的仿真处理状态标识并检查,判断各仿真节点是否处理完成,若当前同步模式为阻塞式同步,分别判断是否仿真推进时间到和/或是否所有仿真节点均处理完成,若存在仿真节点未处理完成,则继续周期轮询Redis中的仿真节点处理状态标识Hash表,若所有仿真节点的处理状态标识均为已完成,则表示本仿真帧的处理已完成,仿真系统推进到下一仿真帧;仿真同步管理模块读取仿真节点计算输出Hash表,将仿真节点计算输出汇总、格式化处理后生成新的仿真场景信息,写入环境信息string、和电磁环境信息string;否则返回,继续从Redis数据库中获取各仿真节点的仿真处理状态标识并检查,直到所有仿真节点均将仿真处理状态标识更新为已完成。
8.如权利要求7所述的分布式空基仿真运行控制管理方法,其特征在于征:仿真同步管理模块从Redis数据库中获取各仿真节点的仿真处理结果,生成新的全局仿真场景信息,并写入Redis数据库,将仿真节点处理状态标识Hash表中各仿真节点的处理状态标识更新为无意义,确保下一个周期不会读取到旧的状态标识;仿真同步管理模块根据物理时钟和各仿真节点的仿真推进步长,生成新的仿真时间,并写入Redis数据库,根据仿真节点逻辑ID,写入仿真时钟Hash表,本仿真周期同步推进完成,回到从Redis数据库中获取各仿真节点的仿真处理状态标识并检查步骤,继续下一仿真周期的同步处理,循环执行以上过程,直至仿真结束或仿真管理节点收到仿真停止命令。
9.如权利要求8所述的分布式空基仿真运行控制管理方法,其特征在于征:若当前同步模式为非阻塞式,仿真同步管理模块,以仿真系统仿真周期定时器事件为主进行同步处理,若存在仿真节点未处理完成且仿真推进时间未到,则继续周期轮询Redis中的仿真节点处理状态标识Hash表;若仿真推进时间到,此时有仿真节点未更新其处理状态标识为已完成,则仿真同步管理模块不等待,进行推进到下一仿真帧的同步处理,继续完成后续处理。
10.如权利要求1所述的分布式空基仿真运行控制管理方法,其特征在于征:对于驻留在仿真节点上的仿真同步模块运行后,将本地缓存的仿真时间初始化为0,创建并启动各自的同步监控线程;根据本仿真节点的逻辑ID,周期的从Redis数据库中获取本节点的仿真时间,从仿真时钟Hash表中获取当前仿真时间,然后与本地缓存的仿真时间进行比较,若获取的当前仿真时间大于本地缓存的仿真时间,则表示仿真场景发生了推进,使用获取的当前仿真时间更新本地缓存的仿真时间,更新本地缓存的仿真时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010747680.9A CN111966748B (zh) | 2020-07-30 | 2020-07-30 | 分布式空基仿真运行控制管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010747680.9A CN111966748B (zh) | 2020-07-30 | 2020-07-30 | 分布式空基仿真运行控制管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111966748A CN111966748A (zh) | 2020-11-20 |
CN111966748B true CN111966748B (zh) | 2023-02-24 |
Family
ID=73362985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010747680.9A Active CN111966748B (zh) | 2020-07-30 | 2020-07-30 | 分布式空基仿真运行控制管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111966748B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631981A (zh) * | 2020-12-23 | 2021-04-09 | 中国人民解放军63921部队 | 一种模拟训练可靠容错仿真引擎 |
CN112925575A (zh) * | 2020-12-29 | 2021-06-08 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种基于框架及插件的机载仿真运行方法 |
CN113094260B (zh) * | 2021-03-18 | 2024-04-05 | 西北工业大学 | 一种分布式系统时序关系建模与仿真分析方法 |
CN113656963B (zh) * | 2021-08-16 | 2024-06-11 | 中国电子科技集团公司第五十四研究所 | 一种可实时交互控制的分布式作战推演仿真系统 |
CN115689405B (zh) * | 2023-01-04 | 2023-05-30 | 北京京东振世信息技术有限公司 | 数据处理方法、装置及系统、计算机可存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1804804A (zh) * | 2005-11-23 | 2006-07-19 | 中国航天科技集团公司第一研究院 | 基于hla的分布交互仿真平台及其实现方法 |
CN103593181A (zh) * | 2013-10-23 | 2014-02-19 | 中国运载火箭技术研究院 | 一种可配置分布式三维视景仿真系统 |
-
2020
- 2020-07-30 CN CN202010747680.9A patent/CN111966748B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1804804A (zh) * | 2005-11-23 | 2006-07-19 | 中国航天科技集团公司第一研究院 | 基于hla的分布交互仿真平台及其实现方法 |
CN103593181A (zh) * | 2013-10-23 | 2014-02-19 | 中国运载火箭技术研究院 | 一种可配置分布式三维视景仿真系统 |
Non-Patent Citations (1)
Title |
---|
基于数据分发服务的通用仿真框架技术;雷媛元等;《计算机应用》;20200710;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111966748A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966748B (zh) | 分布式空基仿真运行控制管理方法 | |
CN106888254B (zh) | 一种基于Kubernetes的容器云架构及其各模块之间的交互方法 | |
CN109522029A (zh) | 一种部署云平台技术组件的方法及装置 | |
CN112069265B (zh) | 配置数据的同步方法、业务数据系统、计算机系统和介质 | |
CN106775867B (zh) | Windows操作系统环境下的飞行模拟系统 | |
CN102622262B (zh) | 基于modelica建模语言的分布式实时交互仿真系统 | |
CN112698921B (zh) | 一种逻辑代码运行方法、装置、计算机设备和存储介质 | |
CN109446395A (zh) | 一种提高基于Hadoop大数据综合查询引擎效率的方法及系统 | |
CN110838961B (zh) | 一种通用航空总线消息调度系统 | |
CN111381983A (zh) | 虚拟试验靶场验证系统的轻量级消息中间件系统及方法 | |
CN112445598B (zh) | 一种基于quartz的任务调度方法、装置、电子设备以及介质 | |
CN111008244A (zh) | 一种用于数据库的同步和分析方法及系统 | |
US8938599B2 (en) | Distributed graph storage system | |
CN103077068B (zh) | 一种基于共享内存的高性能仿真系统实现方法 | |
CN108363787B (zh) | 一种ifc文件并行存储方法、装置及系统 | |
CN103646134A (zh) | 一种面向服务的网络化仿真系统动态生成方法 | |
CN114707242A (zh) | 一种通用的机载数据总线监控及测试软件框架设计方法 | |
US20140325516A1 (en) | Device for accelerating the execution of a c system simulation | |
Ouyang et al. | Achieving probabilistic atomicity with well-bounded staleness and low read latency in distributed datastores | |
Sampson | Process-oriented patterns for concurrent software engineering | |
CN115796806A (zh) | 一种基于微服务的系统构建方法 | |
CN115454666A (zh) | 消息队列集群间的数据同步方法和装置 | |
CN114925078A (zh) | 数据更新方法、系统、电子设备及存储介质 | |
CN116701387A (zh) | 数据分段写入方法、数据读取方法及装置 | |
CN115033290A (zh) | 一种基于指令集的微服务拆分方法、装置及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |