分布式仿真运行支撑环境、仿真系统、开发方法及介质与流程

文档序号:31447680发布日期:2022-09-07 12:20阅读:285来源:国知局
分布式仿真运行支撑环境、仿真系统、开发方法及介质与流程

1.本发明属于计算机建模与仿真的技术领域,尤其涉及分布式仿真运行支撑环境、仿真系统、开发方法及介质。


背景技术:

2.hla于2000年被接受为开放标准ieee1516,是当前用于分布式仿真的通用技术框架。hla的理念是实现仿真应用系统的即插即用,易于新仿真系统的集成和管理,并能根据不同的用户需求和不同的应用目的,实现联邦的快速组合和重新配置,保证联邦范围内的互操作和重用。而rti(run time infrastructure:运行支撑环境)作为hla的重要组成部分,用程序设计语言将hla接口规范定义的标准服务和接口转成了标准的rti api函数,使基于hla的仿真开发成为可能,是hla实现的核心内容。
3.在广域网环境下,特别是在维护与全局操作相关的状态信息时,现有的分布式rti已经很难适应大规模仿真的应用需求。将基于hla的仿真和web服务结合起来构建分布式仿真运行支撑环境得到越来越多的关注,国内外不同学者提出了许多不同的方法,重点解决了如下问题:1、使用基于http的通信协议soap/rest,从而使hla兼容的仿真联邦成员能够与rti在广域网、局域网等各类网络上通信。使用基于http的soap/rest消息,终端应用程序可以很容易地联接远程服务并调用远程方法,屏蔽防火墙等安全限制对通信的影响。
4.2、使用web服务形式构建rti和hla联邦成员,使 hla 联邦成员通过web服务与rti进行通信;允许终端用户在广域网上加入联邦或者通过浏览器组合一个联邦执行。
5.3、利用web服务协议栈中的一系列标准协助仿真资源的统一管理,增强重用性。如:将各类仿真资源以web服务的方式进行封装,很好地解决了仿真资源分布和平台异构问题;引入web服务机制,结合仿真资源的特点,对资源服务进行逻辑组织和统一管理(包括服务注册、服务发现、语义标注等),方便资源的重用和维护。
6.现有技术的缺点如下:1、在使用web服务进行交互时所传递的soap/rest消息包的大小要远大于直接使用hla所传递的包的大小;同时,在服务被请求、响应时需要对各个参数进行打包和解包等操作。以上这些原因增加了仿真时的通信量及操作时间,从而使性能下降。
7.2、web服务之间的调用基于http,整个调用过程效率较低,增加了仿真时的操作时间。客户端和服务器之间接口通过json字符串或者xml文档传递信息,增加了仿真时的通信量。
8.3、现有技术重点在于扩展hla联邦的成员层和rti通信层,对web服务开发和运维涉及较少,不利于仿真应用的持续交付。


技术实现要素:

9.为改进分布式仿真运行支撑环境构建技术,为局域网/广域网环境下大规模复杂
仿真应用提供支撑,为此,本发明提出了分布式仿真运行支撑环境、仿真系统、开发方法及介质,具体方案如下:一种分布式仿真运行支撑环境包括基于k8s的仿真云原生应用管理平台,实现统一管理所有仿真应用、所有基础设施和所有it流程;分布式仿真应用开发规范,接口协议采用google protocol buffer v3.0数据序列化协议,接口之间的调用统一采用grpc异步非阻塞方式进行。
10.具体地说,所述基于k8s的仿真云原生应用管理平台包括基础设施管理:包括用户管理、租户管理、集群管理、权限管理、资源管理、云迁移管理;用户管理以权限管理为基础,通过增、删、改操作,建立与用户相关的账户、角色和权限三者的关系;租户管理采用多个租户共享一个数据库同一个schema,通过数据库表字段来区分不同租户的方式实施多租户数据隔离;权限管理基于rbac(role-based access control)模型,通过建立账户、角色、权限三者之间的相互关系,达到对数据、页面、操作实施管控的目的;权限管理还涉及认证和授权的问题;认证用于确定账户的合法性,系统采用基于token的认证方式;集群管理和资源管理通过k8s提供的声明式api来对集群中软硬件资源及集群本身实施管理;应用开发管理:包括应用部署、配置管理、运维管理;应用部署通过使用dockerfile,将应用打包成docker镜像,然后部署到k8s集群;配置管理使用以明文形式存放的应用配置文件,并将配置与k8s的pod绑定,使配置文件和部署镜像解耦;运维管理通过使用k8s提供的管理工具来实施。
11.具体地说,所述分布式仿真运行支撑环境包括联邦管理、声明管理、对象管理、数据分发管理;联邦管理:包括创建联邦执行、加入联邦执行、退出联邦执行、请求联邦同步、请求联邦保存。
12.具体地说,创建联邦执行的步骤为:联邦成员首先将请求发送到局部rti服务,局部rti服务查看本地是否已经存在指定名称的联邦执行,若联邦执行已经存在,则直接将已存在异常反馈给联邦成员,若联邦执行不存在,则向中心rti服务发送创建联邦执行请求,若中心rti服务中也未创建该名称的联邦执行,则创建该联邦执行并将创建成功信息反馈给局部rti服务,否则反馈联邦执行存在异常,局部rti服务创建本地联邦执行并向联邦成员反馈创建成功信息。
13.具体地说,加入联邦执行的步骤为:局部rti服务查看自身是否已经作为一个联邦成员加入了中心rti服务,若已经加入,则直接将联邦成员加入本地联邦执行,若尚未加入,则向中心rti服务提出加入联邦执行请求,并在收到中心rti服务的反馈信息之后将联邦成员加入本地联邦执行。
14.具体地说,退出联邦的步骤为:局部rti服务直接将联邦成员退出联邦执行;当本地联邦执行中所有联邦成员退出之后,局部rti服务向中心rti服务发出退出联邦执行请求;中心rti服务中的联邦执行在所有局部rti服务退出之后方可销毁联邦执行。
15.具体地说,请求联邦同步的步骤为:rti服务执行联邦同步服务;该服务将通知联邦成员,指定同步点的同步集中所有成员在该点调用了同步点到达服务;该服务将在该点
同步集合中的所有成员上被调用,即该点同步集中成员在该点已被同步。
16.基于上述分布式仿真运行支撑环境的仿真系统,包括数据服务层,包括用户数据、应用数据、模型数据、组件数据、其他数据;业务服务层,包括基础服务层和仿真应用层,所述基础服务层包括联邦管理、声明管理、对象管理、所有权管理、时间管理、数据分发管理;所述仿真应用层包括航天仿真、电磁环境仿真、网络空间仿真、仿真适配器、其他仿真;应用管理层,监控后台、二/三维展示系统、综合评估系统、其他系统。
17.上述仿真系统的开发方法,其特征在于,包括以下步骤:sa1、启动开发应用管理平台;sa2、新建仿真应用;sa3、按照本发明设计的分布式仿真应用开发规范设计仿真应用;sa4、检索开发应用管理平台提供的组件库,看是否存在可用于开发的组件;如果没有,则新建组件,并开发、测试后加入组件库;如果存在,则在仿真系统开发中直接使用组件;根据安装开发规范完成仿真应用设计。
18.一种分布式仿真系统的实现介质,所述介质存储用于执行开发方法的计算机指令。
19.本发明的有益效果在于:本技术从通信协议、接口调用方式和开发运维环境等3个方面优化了分布式仿真运行支撑环境。新模式下,protobuf协议比xml小3~10倍、快20~100倍;grpc接口调用方式平均响应时间比rest-api低9毫秒左右。整体而言,此发明提出的分布式仿真运行支撑环境通信量更小、操作更快、开发运维更便捷。
20.附图说明
21.图1为仿真云原生开发应用管理平台结构图。
22.图2为创建联邦执行流程图。
23.图3为加入联邦执行流程图。
24.图4为退出联邦执行流程图。
25.图5为请求联邦同步流程图。
26.图6为请求联邦保存流程图。
27.图7为申请公布对象类/交互类流程图。
28.图8为数据分发管理流程图。
29.图9为分布式仿真系统结构图。
30.图10为分布式仿真系统开发方法的流程图。
具体实施方式
31.分布式仿真运行支撑环境、仿真系统、开发方法及介质,包括基于k8s的仿真云原生应用管理平台,对用户屏蔽了容器、k8s和底层基础设施相关技术,实现统一管理所有仿真应用、所有基础设施和所有it流程;
分布式仿真运行支撑环境,对hla在分布式环境下的具体实现;分布式仿真应用开发规范,与ieee标准1516.1-2010中要求的接口规范一致,不同之处在于,要求接口协议采用google protocol buffer(简称protobuf,下同)v3.0数据序列化协议,接口之间的调用统一采用grpc异步非阻塞方式进行。
32.如图1所示,所述基于k8s的仿真云原生应用管理平台包括以下功能:基础设施管理:主要功能包括用户管理、租户管理、集群管理、权限管理、资源管理、云迁移管理;用户管理以权限管理为基础,通过增、删、改操作,建立与用户相关的账户、角色和权限三者的关系,达到管理系统用户的目的。租户管理采用多个租户共享一个数据库同一个schema,通过数据库表字段来区分不同租户的方式实施多租户数据隔离。所述权限管理基于rbac(role-based access control)模型,通过建立账户、角色、权限三者之间的相互关系,达到对数据、页面、操作实施管控的目的。权限管理还涉及认证和授权的问题;认证用于确定账户的合法性,系统采用基于token的认证方式,保证了无状态、跨域环境下登录认证的安全性、可扩展性。集群管理和资源管理通过k8s提供的声明式api来对集群中软硬件资源及集群本身实施管理,让用户像使用单集群一样来使用多集群。
33.应用开发管理:包括应用部署、配置管理、运维管理;所述应用部署通过使用dockerfile,将应用打包成docker镜像,然后部署到k8s集群。配置管理主要使用以明文形式存放的应用配置文件,并将配置与k8s的pod绑定,从而使配置文件和部署镜像解耦,提高镜像的复用性,同时更加灵活的更新配置文件而不需要重构镜像。运维管理通过使用k8s提供的管理工具来实施。
34.应用组件管理:首先建立应用组件元数据,包括组件的名称、类别、功能、输入参数、输出参数、版本号、存放位置、数据权限的属性信息,利用元数据信息综合分析应用组件的变动影响、血缘关系、数据安全,便于对应用组件实施精细化管理,同时结合k8s提供的管理工具实施组件的发布、安装和升级。
35.所述分布式仿真运行支撑环境包括以下功能:联邦管理:包括创建联邦执行、加入联邦执行、退出联邦、请求联邦同步、请求联邦保存;如图2所示,创建联邦执行的步骤为:联邦成员首先将请求发送到局部rti服务,局部rti服务查看本地是否已经存在指定名称的联邦执行,若联邦执行已经存在,则直接将已存在异常反馈给联邦成员,若联邦执行不存在,则向中心rti服务发送创建联邦执行请求,若中心rti服务中也未创建该名称的联邦执行,则创建该联邦执行并将创建成功信息反馈给局部rti服务,否则反馈联邦执行存在异常,局部rti服务创建本地联邦执行并向联邦成员反馈创建成功信息。
36.如图3所示,加入联邦执行的步骤为:局部rti服务查看自身是否已经作为一个联邦成员加入了中心rti服务,若已经加入,则直接将联邦成员加入本地联邦执行,若尚未加入,则向中心rti服务提出加入联邦执行请求,并在收到中心rti服务的反馈信息之后将联邦成员加入本地联邦执行。
37.如图4所示,退出联邦的步骤为:局部rti服务直接将联邦成员退出联邦执行。当本地联邦执行中所有联邦成员退出之后,局部rti服务向中心rti服务发出退出联邦执行请求。中心rti服务中的联邦执行在所有局部rti服务退出之后方可销毁联邦执行。
38.如图5所示,请求联邦同步的步骤为:rti服务执行联邦同步服务。该服务将通知联邦成员,指定同步点的同步集中所有成员在该点调用了同步点到达服务。该服务将在该点同步集合中的所有成员上被调用,即该点同步集中成员在该点已被同步。
39.如图6所示,请求联邦保存的步骤为:如果未选联邦时间变量,rti将指示所有联邦执行成员立即保存状态。rti将通过回调成员的初始化成员保存服务来通知该成员开始保存状态。
40.声明管理:声明管理主要确定一个联邦成员申请公布对象类或交互类,订购对象类与交互类,通过公布-订购的方式,实现信息的有效传递;如图7所示,申请公布对象类或交互类的步骤为:局部rti服务器首先查看该公布是否影响本地rti服务器作为一个整体的公布情况,若不改变整体公布情况,则直接修改本地公布数据列表,进行公布订购匹配操作,并将匹配结果反馈给联邦成员;若该公布使得局部rti服务器的整体公布情况发生改变,则局部rti服务器向中心rti服务器发送增量公布请求,中心rti服务器修改中心数据列表,匹配各个局部rti服务器的公布订购信息,并将匹配结果反馈给各个局部rti服务器,局部rti服务器根据反馈结果重新进行匹配,并将匹配结果反馈给各联邦成员。订购数据流程与公布流程相同,只需要将流程中的公布改成订购。
41.对象管理:针对涉及到全局的注册与删除操作,具体步骤为:联邦成员首先向局部rti服务器提出请求,在局部rti服务器中保存该对象实例的属性所有权信息,以便于对全局性的对象实例属性所有权进行管理。对于更新、发送等操作,联邦成员根据分配的组播通道,直接将更新数据或交互数据发送给本局域网内部的联邦成员或其他局域网的局部rti服务器,完成数据交互。
42.所有权管理:所有权管理基本上由两种属性所有权转移方式:一种是“推”模式,拥有属性的成员通知rti,有意愿放弃对属性的拥有权;另一种是“拉”模式,想要获得某个属性的成员向rti发出获取属性所有权的请求。在推模式中,负责公布和更新对象实例属性的成员有权利决定是否放弃对属性的拥有权,对拥有权的放弃可分为无条件和协商式两种方式。无条件方式下,属性拥有成员可以在没有任何接收者的情况下通知rti放弃属性的所有权,成员对某个所属属性发出相应的无条件放弃属性所有权服务后,该属性立即变为“孤儿”。而协商方式下,属性拥有成员必须在有相应属性接收者的情况下才可以通知rti放弃属性的所有权。在“拉”模式下,当成员向rti发出获取属性的请求后,随后rti向属性的拥有成员发出放弃拥有某属性的回调通知。拥有成员可以自主选择放弃属性所有权或与否。
43.时间管理:联邦成员的逻辑时间管理策略分为两种,即时间控制(time regulating)和时间受限(time constrained)。根据管理逻辑的不同,联邦成员的时间管理可分为下列4种情况:1)既时间控制又时间受限,也称逻辑时间同步,联邦成员既影响其他联邦成员也受其他联邦成员影响,如一个仿真中有两个成员,如果两个成员都是时间控制和时间受限,那么他们的时间推进相互影响,其中任何一个成员要想推进,都得其他成员在之前申请推进(只不过没有推进成功),否则推进不成功,自然仿真过程也无法进行下去,成员也不可能从其他成员那里接收到自己感兴趣的数据;2)既不时间控制也不时间受限,也称外部时间同步。这种时间策略的成员想怎么推进就怎么推进,它的推进不受任何其他成员的影响。3)仅时间受限,也称逻辑时间被动,时间推进收其他成员的影响而不影响其他成员,也就是说联邦中如果其他成员在此时刻不推进,它也别想推进,只有其他成员都推进
了,它才能推进。4)仅时间控制成员,也称逻辑时间主动,时间推进影响其他成员,而不受其他联邦成员的影响。
44.数据分发管理:数据分发管理使用基于组播通信的数据过滤机制,目的是减少仿真运行过程中无用数据的传输和接收,从而减少网络中的数据量,增强构建大型虚拟世界的能力,提高仿真程序的实时性。如图8所示,数据分发管理包括步骤为:区域定义、区域匹配、组播组分配和数据传输。区域定义:每个成员向rti服务声明自己的兴趣,包括希望接收的数据和可以发送的数据的限制条件,这通过定义区域来实现;区域匹配:数据分发管理机制将订购区域与公布区域进行比较,确定区域的相交情况。匹配的结果为发送方和接收方的一个映射;组播组分配:根据区域匹配结果,建立数据通道,即分配组播组;数据传输:通过上一步建立的连接,仿真数据从发送方传输到接收方。
45.如图9所示,最终实现的仿真系统包括数据服务层,包括用户数据、应用数据、模型数据、组件数据、其他数据;业务服务层,包括基础服务层和仿真应用层,所述基础服务层包括联邦管理、声明管理、对象管理、所有权管理、时间管理、数据分发管理;所述仿真应用层包括航天仿真、电磁环境仿真、网络空间仿真、仿真适配器、其他仿真;应用管理层,监控后台、二/三维展示系统、综合评估系统、其他系统。
46.如图10所示,分布式仿真系统的开发方法,具体步骤如下:sa1、启动开发应用管理平台;sa2、新建仿真应用;sa3、按照本发明设计的分布式仿真应用开发规范设计仿真应用;sa4、检索开发应用管理平台提供的组件库,看是否存在可用于开发的组件;如果没有,则新建组件,并开发、测试后加入组件库;如果存在,则在仿真系统开发中直接使用组件;根据安装开发规范完成仿真应用设计;sb1、在开发过程中,每次向代码仓库提交代码后,将触发代码构建工作;构建结果将反馈到开发过程。
47.sb2、持续构建过程中的仿真应用,可部署到测试环境中开展测试、在预发环境中开展试运行;在正式环境中开展运行;构建、测试、预发及正式环境中,运行中所需库文件,可到镜像仓库中获取。
48.本技术实施例提供了一种分布式仿真系统的实现介质,所述介质存储用于执行上述开发方法的计算机指令。
49.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
50.本技术实施例提供的系统和介质与方法是一一对应的,因此,系统和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述系统和介质的有益技术效果。
51.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
52.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
53.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
54.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
55.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
56.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
57.计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
58.本技术主要用于支持局域网或广域网环境下的大规模系统仿真,满足仿真应用规模、结构日益扩大和复杂的需求,是具有分布、异构、协同、互操作、重用等性能的分布式仿真运行支撑环境构建技术。
59.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1