可左右滑动选省市

一种基于云+端架构的信号级仿真平台云化方法

更新时间:2025-07-01
一种基于云+端架构的信号级仿真平台云化方法 专利申请类型:实用新型专利;
源自:北京高价值专利检索信息库;

专利名称:一种基于云+端架构的信号级仿真平台云化方法

专利类型:实用新型专利

专利申请号:CN202310464135.2

专利申请(专利权)人:中国人民解放军92942部队
权利人地址:北京市丰台区六里桥北里四号院

专利发明(设计)人:宋海凌,谭丹,王书满,马晓斌,刘璞秋,强艳辉,肖明,查丽萍

专利摘要:本说明书公开了一种基于云+端架构的信号级仿真平台云化方法,涉及信号级仿真技术领域,方法包括对仿真平台进行仿真计算需要使用的硬件资源进行虚拟化处理,获得若干资源空间;将上述仿真平台中的仿真工具进行无状态化处理,获得无状态仿真工具;将上述仿真平台的架构程序转化为B/S架构程序,获得云化后的仿真平台架构程序;基于上述资源空间、无状态仿真工具和上述云化后的仿真平台架构程序,获得云化后的仿真平台,以解决传统的雷达系统全数字信号级仿真平台在平台规模扩大、结构复杂化时存在资源控制粒度和系统灵活度不高且可靠性和扩展能力不强的问题。

主权利要求:
1.一种基于云+端架构的信号级仿真平台云化方法,其特征在于,包括:对仿真平台进行仿真计算需要使用的硬件资源进行虚拟化处理,获得若干资源空间;
将所述仿真平台中的仿真工具进行无状态化处理,获得无状态仿真工具;
所述将所述仿真平台中的仿真工具进行无状态化处理,获得无状态仿真工具的步骤包括:修改程序的参数,获得可配置的程序参数;
将所述仿真工具的所有依赖库进行打包编译,获得依赖库可执行程序;
基于所述仿真平台的服务端程序,获得修改后的所述服务端程序的启动方式;
基于所述可配置的程序参数、所述依赖库可执行程序、所述启动方式和所述仿真工具的数据,获得无状态仿真工具;
将所述仿真平台的架构程序转化为B/S架构程序,获得云化后的仿真平台架构程序;
基于所述资源空间、无状态仿真工具和所述云化后的仿真平台架构程序,获得云化后的仿真平台;
将所述云化后的仿真平台的通信方式修改为基于http协议的通信方式;
对所述云化后的仿真平台的服务进行拆分,获得若干微服务;
所述对所述云化后的仿真平台的服务进行拆分,获得若干微服务的步骤包括:对common库中的基础库进行初始化;
基于代码职责对所述服务进行拆分,获得若干微服务;
基于所述若干微服务,获得对应的服务接口对所述云化后的仿真平台的门户进行搭建,所述门户用于提供所述若干微服务;
所述对所述云化后的仿真平台的门户进行搭建的步骤包括:基于JavaScript语言和前端框架,搭建统一的仿真平台的门户;
将所述若干微服务集成与所述门户,获得对应的访问地址;
基于所述门户和所述若干微服务,获得用户权限与所述若干微服务之间的对应关系。
2.根据权利要求1所述的方法,其特征在于,在所述获得云化后的仿真平台之前还包括:对开发所述仿真平台的组件进行规范化管理。
3.根据权利要求1所述的方法,其特征在于,所述对仿真平台进行仿真计算需要使用的硬件资源进行虚拟化处理,获得若干资源空间的步骤包括:基于Linux内核,创建若干资源控制组和若干资源空间;
基于所述资源控制组,获得对应的资源限制参数;
基于所述资源空间对所述仿真平台的系统资源进行资源隔离。
4.根据权利要求1所述的方法,其特征在于,所述将所述仿真平台的架构程序转化为B/S架构程序,获得云化后的仿真平台架构程序的步骤包括:基于标准编译器,获得编译环境迁移到Linux上的B/S架构程序;
基于所述架构程序的文件名,获得所述B/S架构程序的标准文件名;
移除所述B/S架构程序中所有属于VS/VC环境下独有的数据类型、关键字、依赖库;
基于所述B/S架构程序修改所述架构程序的程序设计结构和用户操作界面,获得云化后的仿真平台架构程序。
5.根据权利要求1所述的方法,其特征在于,所述所述云化后的仿真平台的通信方式修改为基于http协议的通信方式的步骤包括:将所述云化后的仿真平台的通信协议修改为HTTPrestful接口形式;
将所述云化后的仿真平台的通信地址修改为域名通信。
6.根据权利要求2所述的方法,其特征在于,所述对开发所述仿真平台的组件进行规范化管理的方式为对所述仿真平台的组件进行部署,并基于所述组件,获得对应的若干规范,然后对所述组件进行自动测试、自动部署、预置和发布。 说明书 : 一种基于云+端架构的信号级仿真平台云化方法技术领域[0001] 本发明属于信号级仿真技术领域,具体涉及一种基于云+端架构的信号级仿真平台云化方法。背景技术[0002] 现代复杂电磁环境场景中,雷达系统起着举足轻重的作用,各种信号具有数量庞大、体制复杂、种类多样的特点,这种环境对雷达系统的实际能力产生了较大的影响。为适应现代高技术环境下的使用需求,提高雷达在复杂电磁环境下的适应能力,需要逼真的模拟复杂电磁环境,并对信息系统进行各类试验,也包括不同的仿真试验,以最大限度的保证其适应复杂的电磁环境。[0003] 目前,国内外针对雷达系统试验的需求,主流的方式是构建内场仿真试验,分为半实物仿真试验和全数字仿真试验。相比半实物仿真试验,全数字仿真试验在环境构设难度、场景构建全要素、重复试验次数、建设经费成本上具有很大的优势,便于从机理上深入分析系统对抗复杂环境的效应,开展各类典型场景下的遍历试验,切实摸清雷达系统的边界底数。随着信息技术和计算机仿真技术的发展,以及使用需求的变化,要求雷达系统全数字信号级仿真平台具备仿真资源高利用率、高度分布性、良好的互操作性和可扩展性的能力,为解决实际问题,仿真平台的架构由传统的单体模式逐步向分布式架构模式和云+端架构模式演进。[0004] 单体模式的仿真系统开发简单,开发环境通常利用现有的IDE(集成开发环境),集代码编辑器、编译器、调试器和图形用户界面等工具为一体,运行环境单一。但其存在诸多难以解决的问题:①由于缺乏故障隔离机制,系统的稳定性和可靠性较差;②由于不同模块对资源的需求差异大,系统对各个模块的生命周期管理差,导致资源浪费可能性大;③单体模式仿真系统往往采用统一的技术平台,引入新的框架和开发语言变得很困难;④随着仿真业务的不断增加,整个系统包含的模块众多,代码维护管理变得困难;⑤当仿真系统规模变大之后,系统应用更新、编译等耗费时间较长,导致应用的可维护性、灵活性降低,维护成本增加。[0005] 基于分布式架构模式的仿真系统对应用按照业务进行垂直切分,将广度上复杂的业务实现物理解耦,然后再应用内部按照功能进行水平切分,将深度上的复杂业务实现逻辑解耦。然而,分布式架构依然存在一定的局限性,具体表现在:①由于内部需求变更、bug修复,服务提供者修改接口后,很难及时通知所有服务消费者,服务兼容性差;②传统分布式架构环境下,如何高效的进行问题定界、定位、日志检素依旧难以解决;③服务间通过API远程调用,会增加额外的时延及性能损耗,受网络影响严重;④不同分布式架构有各自的协议,没有统一的设计风格,难以实现通用的客户端库。[0006] 因此,传统的雷达系统全数字信号级仿真平台在平台规模扩大、结构复杂化时存在资源控制粒度和系统灵活度不高且可靠性和扩展能力不强的问题。发明内容[0007] 本发明的目的是提供一种基于云+端架构的信号级仿真平台云化方法,以解决传统的雷达系统全数字信号级仿真平台在平台规模扩大、结构复杂化时存在资源控制粒度和系统灵活度不高且可靠性和扩展能力不强的问题。[0008] 为实现上述目的,本发明采用如下技术方案:[0009] 一方面,本说明书提供一种基于云+端架构的信号级仿真平台云化方法,包括:[0010] 步骤102,对仿真平台进行仿真计算需要使用的硬件资源进行虚拟化处理,获得若干资源空间;[0011] 步骤104,将上述仿真平台中的仿真工具进行无状态化处理,获得无状态仿真工具;[0012] 步骤106,将上述仿真平台的架构程序转化为B/S架构程序,获得云化后的仿真平台架构程序;[0013] 步骤108,基于上述资源空间、无状态仿真工具和上述云化后的仿真平台架构程序,获得云化后的仿真平台。[0014] 另一方面,本说明书提供一种基于云+端架构的信号级仿真平台云化装置,包括:[0015] 硬件虚拟化模块,用于对仿真平台进行仿真计算需要使用的硬件资源进行虚拟化处理,获得若干资源空间;[0016] 无状态处理模块,将上述仿真平台中的仿真工具进行无状态化处理,获得无状态仿真工具;[0017] 架构转换模块,将上述仿真平台的架构程序转化为B/S架构程序,获得云化后的仿真平台架构程序;[0018] 平台云化模块,用于基于上述资源空间、无状态仿真工具和上述云化后的仿真平台架构程序,获得云化后的仿真平台。[0019] 基于上述技术方案,本说明书能够获得如下技术效果:[0020] 本方法通过虚拟化技术将所有硬件设备资源综合抽象,形成不同资源的资源池,从而对硬件资源进行虚拟化管理,实现共享、重用和隔离控制,通过对平台的仿真工具进行无状态化处理,从而降低仿真服务间互相调用带来的复杂性,实现服务基础组件抽象化,通过将传统的单体架构C/S转换为B/S架构,从而将程序迁移到Linux环境下,保障仿真平台的高可用、强可靠、扩展,提升对仿真资源的控制粒度,提高平台透明度和系统管理灵活性,解决传统的雷达系统全数字信号级仿真平台在平台规模扩大、结构复杂化时存在资源控制粒度和系统灵活度不高且可靠性和扩展能力不强的问题。附图说明[0021] 图1是本发明一实施例中一种基于云+端架构的信号级仿真平台云化方法的流程示意图。[0022] 图2是本发明一实施例中一种基于云+端架构的信号级仿真平台云化方法的流程示意图。[0023] 图3是本发明一实施例中一种基于云+端架构的信号级仿真平台云化方法的流程示意图。[0024] 图4是本发明一实施例中一种基于云+端架构的信号级仿真平台云化方法的流程示意图。[0025] 图5是本发明一实施例中一种基于云+端架构的信号级仿真平台云化方法的流程示意图。[0026] 图6是本发明一实施例中一种基于云+端架构的信号级仿真平台云化装置的结构示意图。[0027] 图7是本发明一实施例中一种电子设备的结构示意图。具体实施方式[0028] 以下结合附图和具体实施例对本发明作进一步详细说明,根据下面说明和权利要求书,本发明的优点和特征将更清楚。需要说明的是,附图均采用非常简化的形式且均适用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。[0029] 需要说明的是,为了清楚地说明本发明的内容,本发明特举多个实施例以进一步阐释本发明的不同实现方式,其中,该多个实施例是列举式而非穷举式。此外,为了说明的简洁,前实施例中已提及的内容往往在后实施例中予以省略,因此,后实施例中未提及的内容可相应参考前实施例。[0030] 实施例1[0031] 请参照图1,图1所示为本实施例提供的一种基于云+端架构的信号级仿真平台云化方法。本实施例中,该方法包括:[0032] 步骤102,对仿真平台进行仿真计算需要使用的硬件资源进行虚拟化处理,获得若干资源空间;[0033] 本实施例中,步骤102的一种实现方式为:[0034] 步骤202,基于Linux内核,创建若干资源控制组和若干资源空间;[0035] 具体地,基于Linux环境下,创建对应资源控制组和资源空间,资源控制组主要用于对控制组内的系统资源进行控制,资源空间主要用于对空间内的资源进行查看,从而对系统资源进行隔离,空间之间的资源互不影响。[0036] 步骤204,基于上述资源控制组,获得对应的资源限制参数;[0037] 具体地,对每个资源控制组设置对应的内存资源限制参数,当服务进程超过其资源控制组定义的资源限制时,操作系统将终止该服务进程。[0038] 步骤206,基于上述资源空间对上述仿真平台的系统资源进行资源隔离。[0039] 具体地,将不同的系统资源放在不同的资源空间,从而不同资源空间的程序,可以享有一份独立的系统资源,来实现资源隔离的目的。[0040] 本实施例中,步骤102的一种具体实施方式为:[0041] 创建内存资源控制组:基于Linux环境下,创建对应资源控制组,设置其对应的内存资源限制参数。[0042] 将服务进程放入资源控制组,运行服务后获取进程标识,然后将该标识输入[0043] /sys/fs/cgroup/memory/foo/cgroup.procs文件中,即可实现将该进程的内存限制为内存资源控制组的限制参数,当进程超过其资源控制组定义的资源限制时,操作系统将终止该进程。[0044] 创建其它类型资源控制组,如CPU资源控制组等。[0045] 创建资源空间,资源空间是在内核级别以一种抽象的形式来封装系统资源,通过将系统资源放在不同的资源空间中,来实现资源隔离的目的。不同资源空间的程序,可以享有一份独立的系统资源。分别创建网络资源空间、文件系统资源空间、进程资源空间、用户资源空间,主机域资源空间。[0046] 将服务进程标识注入各个资源空间中,实现各进程的相互隔离,不能访问其它进程的资源。[0047] 基于此,本实施例通过操作系统内核的容器轻量级虚拟化技术,将所有的硬件设备资源综合抽象,形成不同资源的资源池等,硬件资源虚拟化包括对仿真计算所用到的GPU、CPU、内存、存储、网络等硬件资源进行虚拟池化管理,实现共享、重用和隔离控制,从而,为仿真服务提供计算、存储、网络等硬件资源,并提供共享、重用和隔离控制,CPU控制粒度可到毫核级别,内存控制粒度可到MB,GPU控制粒度可到MB。[0048] 步骤104,将上述仿真平台中的仿真工具进行无状态化处理,获得无状态仿真工具;[0049] 本实施例中,步骤104的一种实现方式为:[0050] 步骤302,修改程序的参数,获得可配置的程序参数;[0051] 具体地,修改程序内的参数,使得程序内的所有参数都要可配置,不可写死到程序代码里面,全部都需要通过程序启动的时候制定参数传递的方式读取。例如,类似一下方式:[0052] ./simulation‑demoparam1param2param3[0053] 若程序需要和其他程序通信,需要配置程序的IP地址或者域名以及端口,例如:[0054] ./simulation‑demo1‑‑demo2‑address=192.168.2.1‑‑demo2‑port=80[0055] 若需要配置文件,该文件来源也必须参数化,例如:[0056] ./simulation‑demo‑‑config=config.json[0057] 步骤304,将上述仿真工具的所有依赖库进行打包编译,获得依赖库可执行程序;[0058] 具体地,将所有依赖库打包编译进一个可执行程序里面,使得该程序换一个运行环境,修改相应的参数后同样可以正常运行。[0059] 步骤306,基于上述仿真平台的服务端程序,获得修改后的上述服务端程序的启动方式;[0060] 具体地,所有的服务端程序必须能够通过命令行启动,如果有图形界面则需要将前后端分离,前端在门户中可视化。例如,同时所有的程序必须能够保证幂等启动,持久化当前状态,当无状态应用进程出现卡死,不正常退出后,重新启动后也能够继续运行。[0061] 本实施例中,步骤306之后还包括:[0062] 修改数据存储方式,所有的数据必须及时持久化,不管是放到数据库,消息队列,共享内存还是共享显存中,不能长时间将数据存到本地内存中。[0063] 步骤308,基于上述可配置的程序参数、上述依赖库可执行程序、上述启动方式和上述仿真工具的数据,获得无状态仿真工具。[0064] 基于此,本实施例通过把仿真工具的状态往外移,将会话数据、文件数据、结构化数据保存在后端统一的存储设备中,使仿真工具仅仅包含业务逻辑。雷达系统信号级仿真平台中的事前工具如战情设计、试验设计,事后工具如分析评估、试验复盘等工具均属于工具无状态化对象,可自由选择多种服务支撑组件,能够降低仿真服务间互相调用带来的复杂性,屏蔽实现细节,实现服务基础组件抽象化、仿真应用无感知、无任何程序侵入式修改。[0065] 步骤106,将上述仿真平台的架构程序转化为B/S架构程序,获得云化后的仿真平台架构程序;[0066] 本实施例中,步骤106的一种实现方式为:[0067] 步骤402,基于标准编译器,获得编译环境迁移到Linux上的B/S架构程序;[0068] 具体地,在把程序从Windows迁移到Linux环境,在Windows上的开发和编译一般使用VC/VS这样的IDE,这些IDE做了很多额外工作,比如包装一些数据类型,与标准的C/C++有一些区别。而在现在需要迁移到Linux上需要使用标准的C/C++编译器编译。[0069] 步骤404,基于上述架构程序的文件名,获得上述B/S架构程序的标准文件名;[0070] 具体地,ext2文件系统对文件名是大小写敏感的,当在这种文件系统上进行编译时,避免源文件中出现#include语句,在VC/VS环境下,由IDE自动生成的#include语句,其中的文件名全部是小写的。所以,你需要在一开始就注意这个问题,严格的使用大小写敏感的文件名格式,避免在Linux下编译时出现找不到头文件的错误。[0071] 步骤406,移除上述B/S架构程序中所有属于VS/VC环境下独有的数据类型、关键字、依赖库;[0072] 具体地,移除所有使用VS独有数据类型,像__int16,__int32和__int64等等,其他编译器不一定支持上述数据类型。同时避免在VC/VS中使用WORD,DWORD,INT,UINT等Linux系统下不包含的扩展数据类型。将windows.h和basetypes.h中对这些数据进行定义的语句复制到头文件中,再在Linux下包括该头文件;移除独有关键字:避免在代码中使用VC中带两个下划线的关键字,比方__asm。若无法避免,就用#ifdef和#endif为Linux和Windows编写两个版本;移除独有依赖库:移除windows.h等Windows环境的独有依赖库。[0073] 步骤408,基于上述B/S架构程序修改上述架构程序的程序设计结构和用户操作界面,获得云化后的仿真平台架构程序。[0074] 具体地,首先需要修改程序设计结构,使用到多进/线程、管道或者对Windows图形界面的程序进行移植的时候,需要考虑程序设计结构,典型的应用实现架构一般包含表现层、业务层和数据访问层。表现层由处理HTTP请求的模块组成,业务层实现业务逻辑,数据访问层包含访问基础设施的模块。业务层由一个或多个API封装业务逻辑。将表现层和业务层前后端分离后,表现层对业务层进行远程调用。在程序设计结构改动中,应最小化应用程序使用的线程数,并将输入输出模块独立出来;然后修改用户操作界面,所有需要可视化界面的功能模块统一采用前后端分离技术,使用JavaScript语言编写前端可视化界面。需要给用户展示图形化界面的,统称为客户端,即B/C端;没有展示图形化界面的程序称为服务端,即S端。把图形化渲染部分拆分出来,改为B端,其它的全部作为服务端,而这些服务端是在同一个进程,还是多个进程里面,服务端内部通信由服务端自行控制,云平台不做干预也不做监控。B端是采用Javascript编程语言,前端框架为React、Vue等前端框架。服务端提供HTTPrestful标准接口,通过http接口将数据传送给B端,B端负责渲染[0075] 基于此,本实施例通过将传统的单体架构C/S架构中的C端由Qt等界面框架编写的可视化界面改为有React等Web技术编写的可视化界面,并对S端与前端交互通信方式进行改造,包括将传统的TCP/UDP方式改造为Httprestful规范的方式,[0076] 步骤108,基于上述资源空间、无状态仿真工具和上述云化后的仿真平台架构程序,获得云化后的仿真平台。[0077] 本实施例中,步骤108之后还包括:[0078] 步骤502,将上述云化后的仿真平台的通信方式修改为基于http协议的通信方式;[0079] 本实施例中,步骤502的一种实现方式为:[0080] 将上述云化后的仿真平台的通信协议修改为HTTPrestful接口形式;[0081] 具体地,在程序云化后,需将服务与服务之间的通信方式由RPC等修改为HTTPrestful接口形式交互,例如客户端使用ajax方式,服务端使用feign‑client等http库进行通信。[0082] 将上述云化后的仿真平台的通信地址修改为域名通信。[0083] 具体地,在传统程序交互时,基本是使用IP地址通信,一般都是启动时固定IP。而服务上云后每个服务的ip地址是不固定的,并且在服务上云后采用服务注册机制,每个服务都会分配到一个固定域名,所以程序的通信需要修改为域名通信。[0084] 基于此,本实施例通过对传统分布式信号仿真平台通信依赖的Http协议、RPC协议、长链接等通信方式进行改进,对cookie进行限制,对前端请求接口进行约束,保证云化后的仿真平台易用性和可扩展性。[0085] 步骤504,对上述云化后的仿真平台的服务进行拆分,获得若干微服务;[0086] 本实施例中,步骤504的一种实现方式为:[0087] 对common库中的基础库进行初始化;[0088] 具体地,基础库对于微服务架构是非常重要的,一般在一个新项目时,在前期需求讨论完、编码前期时,会优先将公共库进行初始化,例如DB的一些连接池初始化不同项目稍微有一些不同。HTTP等连接池代码基本都是能复用的,其余的公共库直接拖到新项目里就能开始使用。将公共的库都放在common里面,这里面包括log、config、errors等基础库,还有Redis、Mongo、MySQL等DB的连接池初始化,还有http的连接池初始化,这里或者用FeignClient或者用户自己基于编程语言自带的HTTP接口的二次封装等。此外,还有Trace等用于追踪请求方便日志查询的基础库。[0089] 基于代码职责对上述服务进行拆分,获得若干微服务;[0090] 具体地,服务的拆分最根本是一些代码职责的拆分和抽象,主要是一种模块化的思想。比如一个仿真项目,该项目具备雷达仿真海杂波仿真等功能,这些仿真模型均需采集数据和上报数据;因此雷达仿真可以单独抽离成一个服务单独部署、海杂波仿真也可以抽成一个服务,而采集数据和上报数据也可以分别独立成一个服务。[0091] 基于上述若干微服务,获得对应的服务接口。[0092] 具体地,然后将组件之间的接口定义完成。仿真项目中所有服务都需要提供接口,最外层也就是Controller层。Controller是接入层,这里统一处理所有的API请求,http或者https。接入层可以做轻量级的数据处理,不做有状态的数据存储。它是一个无状态服务,最终的数据处理传给后端相应的服务。[0093] 最后,基于已经定义好的组件间接口以及初始化后的公共库,团队成员按照组件划分,并行、独立地开始进行代码编写工作,在完成代码编写任务后,可以基于组件为单位进行单元测试,然后等待与其他组件进行联合调试。[0094] 基于此,本实施例通过采用松耦合的微服务架构,遵守高内聚、低耦合原则,综合考虑业务领域、功能稳定性、应用性能、技术、仿真服务的粒度、事务的边界、数据库以及共享服务及组件等因素,将仿真平台拆分为一系列的微服务。[0095] 步骤506,对上述云化后的仿真平台的门户进行搭建,上述门户用于提供上述若干微服务。[0096] 本实施例中步骤506的一种实现方式为:[0097] 基于JavaScript语言和前端框架,搭建统一的仿真平台的门户;[0098] 具体地,利用JavaScript语言,基于React、Vue等前端框架,搭建统一仿真门户Web页面。[0099] 将上述若干微服务集成与上述门户,获得对应的访问地址;[0100] 具体地,基于预集成的仿真服务于后端暴露对应接口,前端调用接口将服务器端的仿真服务集成在仿真门户,并提供对应的访问地址以及功能集成。[0101] 基于上述门户和上述若干微服务,获得用户权限与上述若干微服务之间的对应关系。[0102] 具体地,对于仿真门户能够提供的各类型仿真服务,不同的用户拥有不同的权限,例如查看、编辑、删除等,建立起基于角色的权限控制系统,即每个用户都分配对应的角色,例如管理员、仿真试验人员等,同时对角色进行权限的限制,而非直接对用户进行权限控制。[0103] 基于此,本实施例通过搭建前端仿真门户,使得云化后的仿真平台是以门户的形式提供仿真服务,仿真门户是仿真用户开展全数字仿真试验的统一入口,存在形式主要为基于Web的应用页面。仿真服务在云端服务器集中实现,用户交互功能延伸到与云端服务器联网的任意授权终端,由统一门户为泛在连接的仿真用户群提供仿真试验服务。从而实现功能集约化、管理集约化的整体门户。[0104] 本实施例中,在步骤108之前还包括:[0105] 对开发上述仿真平台的组件进行规范化管理。[0106] 具体地,对开发上述仿真平台的组件进行规范化管理的方式为对上述仿真平台的组件进行部署,并基于上述组件,获得对应的若干规范,然后对上述组件进行自动测试、自动部署、预置和发布。[0107] 例如,本步骤的一种具体实施方式为:[0108] 第一、部署所有相关组件[0109] 代码库:保存各个项目代码[0110] CI/CD组件:执行代码拉取、构建、部署、测试流水线[0111] 需求管理模块:进行需求管理[0112] 第二、制定规范[0113] 代码库规范:包括分支和标签命名规范、分支管理规范(管理流程、hotfix流程、分支策略)、代码提交规范。[0114] 以分支开发、主干发布为例,管理流程规范中会涉及代码库准备、开发集成、验收测试、发布环节,每个分支的用途,每个环节中涉及的角色,角色的操作流程都有详细规范。[0115] 第三、CI/CD流程规范[0116] 命名规范:组件、介质仓库、构建定义、构建产物别名、发布定义。流水线规范:开发流水线、用户验收测试流水线及回滚流水线、发布流水线及回滚流水线、hotfix流水线。[0117] 设计和定义开发测试流水线、用户验收测试流水线、发布流水线这些常规流水线,对应开发测试环境、用户验收环境、生产环境。开发测试流水线经过多次执行,业务系统形成稳定版本,交付到用户验收测试流水线,通过用户验收测试之后,再转到发布流水线进行发布上线;这个过程也设计到代码分支和标签的维护。最终形成研发与运维闭环[0118] 第四、分析和计划[0119] 查看组件间依赖关系(应用发现和交付智能),提高速度,计划和协作(工作流管理)。[0120] 第五、代码和构建[0121] 快速交付,云原生开发,更快地构建混合应用,一次构建、随处部署(一致的管理和协调),自由选择SCM(软件配置管理,自动配置和变更控制)。[0122] 第六、自动测试[0123] 测试左移,容器化测试,单元测试。[0124] 第七、预置、部署和发布[0125] 自动化部署(利用快速反馈、持续交付和审计跟踪),预置多云环境,同步分发应用程序。[0126] 基于此,本实施例通过在开发仿真平台以及运维管理的过程中,通过Devops技术,实现开发代码提交、代码检查、授权验证、镜像管理、自动部署、发布统一管理,将人为的交互将会降至最低,提高对仿真平台的开发、运维效率。[0127] 因此,本方法具有如下有益效果:[0128] (1)可靠性提升:云+端架构能够对仿真服务进行全生命周期管理,提供仿真服务运行状态实时监控、资源使用情况实时监控、健康度检查、自动弹性伸缩,保障仿真应用稳定可靠运行;[0129] (2)可扩展性提升:云+端架构为仿真服务提供完善的服务注册、发现机制、策略路由、安全认证功能,可自由选择多种服务支撑组件,能够降低仿真服务间互相调用带来的复杂性,屏蔽实现细节,实现服务基础组件抽象化、仿真应用无感知、无任何程序侵入式修改;[0130] (3)资源控制粒度精细:云+端架构模式通过资源虚拟化技术,为仿真服务提供计算、存储、网络等硬件资源,并提供共享、重用和隔离控制,CPU控制粒度可到毫核级别,内存控制粒度可到MB,GPU控制粒度可到MB。[0131] (5)平台透明度提升:云+端架构为雷达系统信号级仿真平台提供全方位监控,包括仿真平台基础设施、云资源、仿真服务、仿真应用、中间件数据库的监控:通过实时监控检测平台和仿真应用运行状态,提高了平台和仿真应用服务的可观测性,增强平台透明度。[0132] (6)系统管理灵活性增强:云+端架构能够为仿真服务隔离开发环境、测试环境、生产环境,可在仿真门户进行灵活的可视化配置,快速搭建仿真服务所需资源环境,并能控制仿真人员角色、仿真服务权限,提供认证鉴权服务。[0133] 综上,本方法通过虚拟化技术将所有硬件设备资源综合抽象,形成不同资源的资源池,从而对硬件资源进行虚拟化管理,实现共享、重用和隔离控制,通过对平台的仿真工具进行无状态化处理,从而降低仿真服务间互相调用带来的复杂性,实现服务基础组件抽象化,通过将传统的单体架构C/S转换为B/S架构,从而将程序迁移到Linux环境下,保障仿真平台的高可用、强可靠、扩展,提升对仿真资源的控制粒度,提高平台透明度和系统管理灵活性,解决传统的雷达系统全数字信号级仿真平台在平台规模扩大、结构复杂化时存在资源控制粒度和系统灵活度不高且可靠性和扩展能力不强的问题。[0134] 实施例2[0135] 请参照图6,图6所示为本实施例提供一种基于云+端架构的信号级仿真平台云化装置,包括:[0136] 硬件虚拟化模块,用于对仿真平台进行仿真计算需要使用的硬件资源进行虚拟化处理,获得若干资源空间;[0137] 无状态处理模块,将上述仿真平台中的仿真工具进行无状态化处理,获得无状态仿真工具;[0138] 架构转换模块,将上述仿真平台的架构程序转化为B/S架构程序,获得云化后的仿真平台架构程序;[0139] 平台云化模块,用于基于上述资源空间、无状态仿真工具和上述云化后的仿真平台架构程序,获得云化后的仿真平台。[0140] 可选的,还包括:[0141] 通信修改模块,用于将上述云化后的仿真平台的通信方式修改为基于http协议的通信方式;[0142] 服务拆分模块,用于对上述云化后的仿真平台的服务进行拆分,获得若干微服务;[0143] 门户搭建模块,用于对上述云化后的仿真平台的门户进行搭建,上述门户用于提供上述若干微服务。[0144] 可选的,还包括:[0145] 开发运维模块,用于对开发上述仿真平台的组件进行规范化管理。[0146] 可选的,上述硬件虚拟化模块还包括:[0147] 创建单元,用于基于Linux内核,创建若干资源控制组和若干资源空间;[0148] 参数限制单元,用于基于上述资源控制组,获得对应的资源限制参数;[0149] 资源隔离单元,用于基于上述资源空间对上述仿真平台的系统资源进行资源隔离[0150] 可选的,上述无状态处理模块包括:[0151] 参数修改单元,用于修改程序的参数,获得可配置的程序参数;[0152] 依赖库打包单元,用于将上述仿真工具的所有依赖库进行打包编译,获得依赖库可执行程序;[0153] 启动修改单元,用于基于上述仿真平台的服务端程序,获得修改后的上述服务端程序的启动方式;[0154] 无状态化单元,用于基于上述可配置的程序参数、上述依赖库可执行程序、上述启动方式和上述仿真工具的数据,获得无状态仿真工具。[0155] 可选的,上述架构转换模块包括:[0156] 环境迁移单元,用于基于标准编译器,获得编译环境迁移到Linux上的B/S架构程序;[0157] 文件名修改单元,用于基于上述架构程序的文件名,获得上述B/S架构程序的标准文件名;[0158] 移除单元,用于移除上述B/S架构程序中所有属于VS/VC环境下独有的数据类型、关键字、依赖库;[0159] 云化单元,用于基于上述B/S架构程序修改上述架构程序的程序设计结构和用户操作界面,获得云化后的仿真平台架构程序。[0160] 可选的,上述通信修改模块包括:[0161] 通信协议修改单元,用于将上述云化后的仿真平台的通信协议修改为HTTPrestful接口形式;[0162] 通信地址修改单元,用于将上述云化后的仿真平台的通信地址修改为域名通信[0163] 可选的,上述服务拆分模块包括:[0164] 初始化单元,用于对common库中的基础库进行初始化;[0165] 服务拆分单元,用于基于代码职责对上述服务进行拆分,获得若干微服务;[0166] 接口定义单元,用于基于上述若干微服务,获得对应的服务接口。[0167] 可选的,上述门户搭建模块包括:[0168] 门户搭建单元,用于基于JavaScript语言和前端框架,搭建统一的仿真平台的门户;[0169] 地址集成单元,用于将上述若干微服务集成与上述门户,获得对应的访问地址;[0170] 门户限制单元,用于基于上述门户和上述若干微服务,获得用户权限与上述若干微服务之间的对应关系。[0171] 基于此,本装置通过虚拟化技术将所有硬件设备资源综合抽象,形成不同资源的资源池,从而对硬件资源进行虚拟化管理,实现共享、重用和隔离控制,通过对平台的仿真工具进行无状态化处理,从而降低仿真服务间互相调用带来的复杂性,实现服务基础组件抽象化,通过将传统的单体架构C/S转换为B/S架构,从而将程序迁移到Linux环境下,保障仿真平台的高可用、强可靠、扩展,提升对仿真资源的控制粒度,提高平台透明度和系统管理灵活性,解决传统的雷达系统全数字信号级仿真平台在平台规模扩大、结构复杂化时存在资源控制粒度和系统灵活度不高且可靠性和扩展能力不强的问题。[0172] 实施例3[0173] 请参照图7,本实施例提供一种电子设备,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成一种基于云+端架构的信号级仿真平台云化方法。当然,除了软件实现方式外,本说明书并不排除其他实现方式,比如逻辑器件亦或软硬件结合的方式等等,也就是以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。[0174] 网络接口、处理器和存储器可以通过总线系统相互连接。上述总线可以分为地址总线、数据总线、控制总线等。[0175] 存储器用于存放程序。具体地,程序可以包括程序代码,上述程序代码包括计算机操作指令。存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。[0176] 处理器,用于执行上述存储器存放的程序,并具体执行:[0177] 步骤102,对仿真平台进行仿真计算需要使用的硬件资源进行虚拟化处理,获得若干资源空间;[0178] 步骤104,将上述仿真平台中的仿真工具进行无状态化处理,获得无状态仿真工具;[0179] 步骤106,将上述仿真平台的架构程序转化为B/S架构程序,获得云化后的仿真平台架构程序;[0180] 步骤108,基于上述资源空间、无状态仿真工具和上述云化后的仿真平台架构程序,获得云化后的仿真平台。[0181] 处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器的硬件的集成逻辑电路或者软件形式的指令完成。[0182] 基于同样的发明创造,本说明书实施例还提供一种计算机可读存储介质,上述计算机可读存储介质存储一个或多个程序,上述一个或多个程序当被包括多个应用程序的电子设备执行时,使得上述电子设备执行图1至图5对应的实施例提供的一种基于云+端架构的信号级仿真平台云化方法。[0183] 本领域技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或者结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质上实施的计算机程序产品的形式。[0184] 另外,对于上述装置具体实施方式而言,由于其与方法实施方式基本相似,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。而且,应当注意的是,在本申请的装置的各个模块中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本申请不受限于此,可以根据需要对各个部件进行重新划分或者组合。[0185] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例之间的不同之处。[0186] 上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或者步骤可以按照不同于实施例中的顺序来执行并且依然可以实现期望的结果。另外,在附图描绘的过程中不一定要求示出的特定顺序或者连续顺序才能实现期望的结果,在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。[0187] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

专利地区:北京

专利申请日期:2023-04-26

专利公开日期:2024-09-03

专利公告号:CN116502437B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
该专利所有权非本平台所有,我方无法提供专利权所有者联系方式,请勿联系我方。
电话咨询
到底部
搜本页
回顶部