CN113746683A - 跨域环境下的互连、互通和互操作仿真方法 - Google Patents
跨域环境下的互连、互通和互操作仿真方法 Download PDFInfo
- Publication number
- CN113746683A CN113746683A CN202111081470.1A CN202111081470A CN113746683A CN 113746683 A CN113746683 A CN 113746683A CN 202111081470 A CN202111081470 A CN 202111081470A CN 113746683 A CN113746683 A CN 113746683A
- Authority
- CN
- China
- Prior art keywords
- simulation
- cross
- instance
- client
- domain
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及跨域环境下的互连、互通和互操作仿真方法,包括:一种远程调用服务框架的跨域仿真方法、一种基于云计算的跨域仿真方法以及一种基于消息中间件的跨域仿真方法。本发明公开的三种仿真方法分别适用于三种跨域环境下不同场景的通用互连、互通和互操作仿真架构,使仿真架构与应用场景解耦合,提高可移植性和泛化性。
Description
技术领域
本发明涉及***仿真领域,具体涉及跨域环境下的互连、互通和互操作仿真方法。
背景技术
目前,现有的仿真计算资源仍然受到物理场地的限制,往往只能在本地厂所内使用,存在仿真资源碎片化的情况,无法在联合仿真上形成合力。其次,不同厂所通常装备了具有不同能力的仿真资源,但由于缺乏有效的共享途径,存在仿真“孤岛”问题,相关的仿真资源无法提供给外部使用,造成仿真资源利用率低的问题。随着信息化技术的不断发展,计算仿真的复杂度越来越高,对计算的需求也持续增加,已经超出了单一物理厂所能够提供的算力之和,造成仿真效率低下问题。为了解决上述仿真资源碎片化和仿真“孤岛”问题,有效整合分布在不同物理地点的仿真计算能力,迫切需要研究在跨域环境下,针对分布在不同物理地点的仿真资源的互连、互通和互操作架构,打破不同厂所仿真资源在物理空间上的限制,实现跨域环境下的分布式仿真资源的高效共享,并通过不同仿真资源间的相互协作,满足更多的仿真需求。
跨域环境下的分布式仿真技术以其灵活高效的特点在近几十年内得到了迅猛的发展,成为人们进行***分析设计和测试实验的有力工具。高层体系架构(High LevelArchitecture,HLA)着眼于解决分布式仿真的互操作和可重用问题,已成为构建分布式仿真***的事实标准。基于HLA的分布交互仿真******在科技、社会经济等诸多领域都得到了广泛的应用。21世纪以来,国内大量研究工作针对特定应用场景提出了相应的分布交互仿真方案。在科技领域,基于计算机网络可实现机器人分布式三维图形仿真***,相比单节点可以提供更强大的计算并行能力。基于HLA仿真***的Web服务化可以实现在广域网范围穿越防火墙的通信。在社会经济领域,磨矿流程分布式仿真平台可为进行产品粒度、磨矿能耗等生产指标的优化控制软件研究提供经济有效的途径。变电站分布式培训***可仿真变电站内各种设备正常、异常和故障后的状态,从而实现可交互培训。
然而现有的跨域仿真研究架构也存在着一定的问题:1)这些仿真***往往与应用场景紧密耦合,可移植性和泛化性较差,无法实现仿真计算互连、互通和互操作的需求。2)现有仿真架构缺乏架构设计层面的深入研究,无法对不同跨域仿真架构的优缺点进行定性和定量分析,进而无法对不同应用场景下的仿真架构选型提供有效的指导。
发明内容
为了解决上述技术问题,本发明提供跨域环境下的互连、互通和互操作仿真方法。
本发明技术解决方案为:跨域环境下的互连、互通和互操作仿真方法,包括:
1、一种远程调用服务框架的跨域仿真方法,其特征在于,包括:
步骤S101:将各个仿真实例的代码进行服务化封装,得到不同的仿真实例可执行文件,在配置文件中指定所述仿真实例可执行文件需要监听的端口号,并将得到的程序在不同的服务器上启动,得到不同的仿真实例服务进程;
步骤S102:将各个所述仿真实例服务进程对应的IP地址及其监听的端口号写入跨域仿真客户端配置文件,启动跨域仿真客户端;
步骤S103:用户在所述跨域仿真客户端设置仿真方案,编辑完成并确认无误后即可启动仿真过程;
步骤S104:所述跨域仿真客户端读取所述跨域仿真客户端配置文件,获得各个所述仿真实例服务进程的IP地址及其端口号,分别建立与各个仿真实例服务进程的链接;
步骤S105:所述跨域仿真客户端根据用户设定的所述仿真方案,在本地创建仿真实例包装对象,并向各个所述仿真实例服务进程发送创建仿真实例对象请求和实例初始化请求;
步骤S106:所述仿真实例服务进程接收到所述实例对象创建请求和所述实例初始化请求后,首先在其数据区中划分出用以保存相应的实例对象数据空间,并根据初始化请求中附带的初始化值完成对数据空间的初始化,待创建和初始化完成后,向所述跨域仿真客户端发送完成响应;
步骤S107:所述跨域仿真客户端接收到完成响应之后,即可进行实际的仿真过程,仿真过程由客户端中的仿真引擎统一进行管理,逐时间步进行仿真;
步骤S108:所述仿真引擎将根据当前的时间步,分别调用本地所述仿真实例包装对象的相关函数,进行对应的时间步的仿真;
步骤S109:本地所述仿真实例包装对象相关函数被仿真引擎调用后,如果所述仿真引擎传入了参数,则会对所述参数进行转换和打包处理,使之符合远程服务调用框架客户端接口的要求,所述仿真实例包装对象的相关函数将使用处理后的参数调用远程服务调用框架客户端接口函数,所述接口函数将向对应的仿真实例服务进程发送远程服务调用请求,并将参数传送到所述仿真实例服务进程上;
步骤S110:所述仿真实例服务进程接收到所述调用请求后,获取传递过来的参数,并根据请求调用用户预先定义的处理逻辑,根据本地存储的数据以及传递过来的参数进行计算,计算完成之后,向所述跨域仿真客户端发送响应;
步骤S111:所述跨域仿真客户端收到响应后,所述仿真实例包装对象相关函数将继续之后的处理,如果从所述仿真实例服务进程返回了结果,还需要对所述结果进行解包和转换操作,使之符合所述跨域仿真客户端程序的要求;
步骤S112:重复步骤S108至步骤S111,直到完成整个仿真过程;
步骤S113:待完成仿真过程之后,所述跨域仿真客户端将向所有所述仿真实例服务进程发送实例对象销毁请求,所述仿真实例服务进程收到相应的请求后,释放之前申请对应仿真实例的数据区,之后向所述跨域仿真客户端发送释放完成响应;
步骤S114:所述跨域仿真客户端收到响应后,完成仿真。
2、一种基于云计算的跨域仿真方法,其特征在于,包括以下步骤:
步骤S201:将各个仿真实例的代码进行服务化封装,得到不同仿真实例的可执行文件,并在配置文件上指定这些可执行文件需要监听的端口号,利用这些可执行文件在云上创建对应的仿真实例服务镜像;
步骤S202:用户根据所述仿真实例服务镜像的信息编写配置文件,并利用配置脚本对云上资源进行管理;
步骤S203:用户使用所述配置脚本启动命令,所述配置脚本读取所述配置文件,并指定的云站点上创建相应的仿真实例服务进程,并等待所有仿真实例服务进程完成启动;待所有所述仿真实例服务实例进程启动完成后,生成仿真客户端配置文件,所述跨域仿真客户端配置文件中包括:所有所述仿真实例服务进程的类别,公网IP地址,监听的端口信息;同时,所述配置脚本还将对已经创建的资源进行记录;
步骤S204:用户将所述跨域仿真客户端配置文件放置到仿真客户端指定路径,即可启动所述仿真客户端;
步骤S205:用户在所述跨域仿真客户端设置所需要的仿真方案,编辑完成并确认无误后即可启动仿真过程;
步骤S206:所述跨域仿真客户端读取所述跨域仿真客户端配置文件,获得各个所述仿真实例服务进程的IP地址及其端口号,之后分别建立与各个所述仿真实例服务进程的链接;
步骤S207:所述跨域仿真客户端根据所述仿真方案,在本地创建仿真实例包装对象,并向各个所述仿真实例服务进程发送创建仿真实例对象请求和实例对象初始化请求;
步骤S208:对应的所述仿真实例服务进程接收到所述仿真实例包装对象创建的所述仿真实例对象请求和所述实例对象初始化请求,在其数据区中划分出用以保存相应的实例对象数据空间,并根据所述实例对象初始化请求中附带的初始化值完成对数据空间的初始化,待创建和初始化完成后,向所述跨域仿真客户端发送完成响应;
步骤S209:所述跨域仿真客户端接收到完成响应之后,即可进行实际的仿真过程,仿真过程由所述跨域仿真客户端中的仿真引擎统一进行管理,逐时间步进行仿真;
步骤S210:所述仿真引擎将根据当前的时间步,分别调用本地所述仿真实例包装对象的相关函数,进行对应的时间步的仿真;
步骤S211:本地所述仿真实例包装对象相关函数被仿真引擎调用后,如果所述仿真引擎传入了参数,则会对所述参数进行转换和打包处理,使之符合远程服务调用框架客户端接口的要求,之后所述仿真实例包装对象的相关函数将使用处理后的参数调用远程服务调用框架客户端的接口函数,所述接口函数将向对应的所述仿真实例服务进程发送远程服务调用请求,并将所述参数传送到所述仿真实例服务进程上;
步骤S212:所述仿真实例服务进程接收到所述调用请求后,获取传递过来的所述参数,并根据请求调用的用户预先定义的处理逻辑,根据本地存储的数据以及传递过来的所述参数进行计算,计算完成之后,向所述跨域仿真客户端发送响应;
步骤S213:所述跨域仿真客户端收到响应后,所述仿真实例包装对象中的相关函数将继续之后的处理,如果从所述仿真实例服务进程返回了结果,还需要对所述结果进行解包和转换操作,使之符合所述跨域仿真客户端程序的要求;
步骤S214:重复步骤S210至步骤S213直到完成整个仿真过程;
步骤S215:待完成所述仿真过程之后,所述跨域仿真客户端将向所有所述仿真实例服务进程发送实例对象销毁请求,所述仿真实例服务进程收到相应的请求后,释放之前申请对应仿真实例对象的数据区,并向所述跨域仿真客户端发送释放完成响应;
步骤S216:所述跨域仿真客户端从监听的队列收到响应后,完成仿真;
步骤S217:在完成整个所述仿真过程后,如果用户需要释放云上的资源,可再次执行所述配置脚本,所述配置脚本将会根据之前记录的信息向云站点发送资源释放请求,云站点将会对相应的资源进行释放。
3、一种基于消息中间件的跨域仿真方法,其特征在于,包括以下步骤:
步骤S301:利用消息中间件通信机制将不同的仿真引擎代码进行封装,使每个所述仿真引擎能够监听和使用不同的消息队列,得到不同仿真引擎可执行文件;
步骤S302:启动消息中间件服务器,并获取所述消息中间件服务器的IP地址及监听的端口号;
步骤S303:将所述消息中间件服务器的IP地址及端口号写入不同所述仿真引擎的配置文件中,将步骤S301中的所述仿真引擎可执行文件在不同的服务器上启动,得到仿真引擎服务进程,所述仿真引擎服务进程将会向所述消息中间件服务器注册其所需监听和使用的消息队列;
步骤S304:用户将所述消息中间件服务器的IP地址以及监听的端口号写入跨域仿真客户端的配置文件,启动所述跨域仿真客户端;
步骤S305:用户在所述跨域仿真客户端设置所需要的仿真方案,编辑完成并确认无误后即可启动仿真过程;
步骤S306:所述跨域仿真客户端读取所述配置文件,获取所述消息中间件服务器的IP地址及其监听的端口号,并向其注册所需监听和使用的消息队列;
步骤S307:所述跨域仿真客户端根据所述仿真方案,向各个所述仿真引擎服务进程监听的相应消息队列写入创建仿真实例对象和初始化请求消息,同时监听所述仿真引擎服务进程的消息响应队列;
步骤S308:各个所述仿真引擎服务进程从监听的消息队列获取所述创建仿真实例对象和初始化请求信息后,在其数据区中划分出用以保存相应的所述仿真实例对象的数据空间,并根据所述初始化请求消息中附带的初始化值完成对数据空间的初始化,待创建和初始化完成后,向所述消息响应队列写入响应消息;
步骤S309:所述跨域仿真客户端从所述消息响应队列中得到响应之后,即可进行实际的仿真过程,所述仿真过程由不同的仿真服务引擎管理,由所述跨域仿真客户端进行时间步的管理,逐时间步进行仿真;
步骤S310:所述跨域仿真客户端向第一个所述仿真引擎监听的消息队列写入时间步以及其他需要传递的数据;
步骤S311:第一个所述仿真引擎从监听的所述消息队列中收到请求后,进行本仿真引擎的仿真操作,待仿真操作完成后,根据实际的需要向其他的所述仿真引擎发送相关的时间步和相关数据,如果本仿真引擎需要确定其他所述仿真引擎必须完成相应的请求,则还需要监听其他所述仿真引擎对应的所述消息响应队列,只有收到响应之后才可继续执行;
步骤S312:其余所述仿真引擎收到请求后,进行实际的仿真操作,并在需要的情况下向其他引擎监听的消息队列或者所述跨域仿真客户端监听的消息队列写入对应的信息;
步骤S313:所述跨域仿真客户端从监听的所述消息队列收到仿真数据,并在主界面上显示;
步骤S314:重复步骤S310至步骤S313直到完成整个仿真过程;
步骤S315:待完成整个仿真过程后,所述跨域仿真客户端向各个所述仿真引擎监听的队列写入仿真实例对象销毁请求,所述仿真引擎接收到释放请求后,释放之前申请对应仿真实例对象的数据区,并向所述跨域仿真客户端监听的队列写入释放完成响应;
步骤S316:所述跨域仿真客户端从监听的队列收到响应后,完成仿真。
本发明与现有技术相比,具有以下优点:
1、本发明公开了一种远程调用服务框架的跨域仿真方法,在仿真***或模型不便公开,仿真模型和仿真引擎要求存放于本地的场景,基于远程服务框架实现对仿真引擎和仿真模型的服务化封装,并通过远程功能调用的方式提供相应的结果供外部使用。另外提供多种编程语言的服务调用接口,实现对不同外部程序编程语言的支持。
2、本发明公开了一种基于云计算的跨域仿真方法,基于云计算技术,实现仿真计算在同一云站点和不同云站点之间的分布式运行,以及计算资源随计算需求变化而弹性可伸缩,支持不同仿真实例在云计算环境下的计算过程中的数据交换和通信协同,从而实现不同仿真实例在跨域云计算环境下的协同运行。
3、本发明公开了一种基于消息中间件的跨域仿真方法,针对跨域分布式环境下不同架构的仿真引擎在计算时需要采用点对点通信的方式进行仿真协同的场景,基于消息通信中间件机制实现不同仿真引擎间的服务注册和消息转发等功能。通过对多种消息通信协议的支持来满足仿真时不同的通信需要以及通过对事务性消息的支持满足仿真通信的可靠性要求。
附图说明
图1为本发明实施例中一种远程调用服务框架的跨域仿真方法的流程图;
图2为本发明实施例中一种远程调用服务框架的跨域仿真方法的架构示意图;
图3为本发明实施例中一种基于云计算的跨域仿真方法的流程图;
图4为本发明实施例中一种基于云计算的跨域仿真方法的架构示意图;
图5为本发明实施例中一种基于消息中间件的跨域仿真方法的流程图;
图6为本发明实施例中一种基于消息中间件的跨域仿真方法的架构示意图。
具体实施方式
本发明提供了跨域环境下的互连、互通和互操作仿真方法,提出并设计了三种跨域环境下适用于不同场景的通用互连、互通和互操作仿真架构,使仿真架构与应用场景解耦合,提高可移植性和泛化性。
为了使本发明的目的、技术方案及优点更加清楚,以下通过具体实施,并结合附图,对本发明进一步详细说明。
实施例一
如图1所示,本发明实施例提供一种远程调用服务框架的跨域仿真方法,包括下述步骤:
步骤S101:将各个仿真实例的代码进行服务化封装,得到不同的仿真实例可执行文件,在配置文件中指定仿真实例可执行文件需要监听的端口号,并将得到的程序在不同的服务器上启动,得到不同的仿真实例服务进程;
步骤S102:将各个仿真实例服务进程对应的IP地址及其监听的端口号写入跨域仿真客户端配置文件,启动跨域仿真客户端;
步骤S103:用户在跨域仿真客户端设置仿真方案,编辑完成并确认无误后即可启动仿真过程;
步骤S104:跨域仿真客户端读取跨域仿真客户端配置文件,获得各个仿真实例服务进程的IP地址及其端口号,分别建立与各个仿真实例服务进程的链接;
步骤S105:跨域仿真客户端根据用户设定的仿真方案,在本地创建仿真实例包装对象,并向各个仿真实例服务进程发送创建仿真实例对象请求和实例初始化请求;
步骤S106:仿真实例服务进程接收到实例对象创建请求和实例初始化请求后,首先在其数据区中划分出用以保存相应的实例对象数据空间,并根据初始化请求中附带的初始化值完成对数据空间的初始化,待创建和初始化完成后,向跨域仿真客户端发送完成响应;
步骤S107:跨域仿真客户端接收到完成响应之后,即可进行实际的仿真过程,仿真过程由客户端中的仿真引擎统一进行管理,逐时间步进行仿真;
步骤S108:仿真引擎将根据当前的时间步,分别调用本地仿真实例包装对象的相关函数,进行对应的时间步的仿真;
步骤S109:本地仿真实例包装对象相关函数被仿真引擎调用后,如果仿真引擎传入了参数,则会对参数进行转换和打包处理,使之符合远程服务调用框架客户端接口的要求,仿真实例包装对象的相关函数将使用处理后的参数调用远程服务调用框架客户端接口函数,接口函数将向对应的仿真实例服务进程发送远程服务调用请求,并将参数传送到仿真实例服务进程上;
步骤S110:仿真实例服务进程接收到调用请求后,获取传递过来的参数,并根据请求调用用户预先定义的处理逻辑,根据本地存储的数据以及传递过来的参数进行计算,计算完成之后,向跨域仿真客户端发送响应;
步骤S111:跨域仿真客户端收到响应后,仿真实例包装对象相关函数将继续之后的处理,如果从仿真实例服务进程返回了结果,还需要对结果进行解包和转换操作,使之符合跨域仿真客户端程序的要求;
步骤S112:重复步骤S108至步骤S111,直到完成整个仿真过程;
步骤S113:待完成仿真过程之后,跨域仿真客户端将向所有仿真实例服务进程发送实例对象销毁请求,仿真实例服务进程收到相应的请求后,释放之前申请对应仿真实例的数据区,之后向跨域仿真客户端发送释放完成响应;
步骤S114:跨域仿真客户端收到响应后,完成仿真。
图2展示了本发明提出的一种远程调用服务框架的跨域仿真方法的架构示意图。
本发明公开了一种远程调用服务框架的跨域仿真方法,在仿真***或模型不便公开,仿真模型和仿真引擎要求存放于本地的场景,基于远程服务框架实现对仿真引擎和仿真模型的服务化封装,并通过远程功能调用的方式提供相应的结果供外部使用。另外提供多种编程语言的服务调用接口,实现对不同外部程序编程语言的支持。
实施例二
如图3所示,本发明实施例提供一种基于云计算的跨域仿真方法,包括下述步骤:
步骤S201:将各个仿真实例的代码进行服务化封装,得到不同仿真实例的可执行文件,并在配置文件上指定这些可执行文件需要监听的端口号,利用这些可执行文件在云上创建对应的仿真实例服务镜像;
步骤S202:用户根据仿真实例服务镜像的信息编写配置文件,并利用配置脚本对云上资源进行管理;
步骤S203:用户使用配置脚本启动命令,配置脚本读取配置文件,并指定的云站点上创建相应的仿真实例服务进程,并等待所有仿真实例服务进程完成启动;待所有仿真实例服务实例进程启动完成后,生成仿真客户端配置文件,跨域仿真客户端配置文件中包括:所有仿真实例服务进程的类别,公网IP地址,监听的端口信息;同时,配置脚本还将对已经创建的资源进行记录;
步骤S204:用户将跨域仿真客户端配置文件放置到仿真客户端指定路径,即可启动仿真客户端;
步骤S205:用户在跨域仿真客户端设置所需要的仿真方案,编辑完成并确认无误后即可启动仿真过程;
步骤S206:跨域仿真客户端读取跨域仿真客户端配置文件,获得各个仿真实例服务进程的IP地址及其端口号,之后分别建立与各个仿真实例服务进程的链接;
步骤S207:跨域仿真客户端根据仿真方案,在本地创建仿真实例包装对象,并向各个仿真实例服务进程发送创建仿真实例对象请求和实例对象初始化请求;
步骤S208:对应的仿真实例服务进程接收到仿真实例包装对象创建的仿真实例对象请求和实例对象初始化请求,在其数据区中划分出用以保存相应的实例对象数据空间,并根据实例对象初始化请求中附带的初始化值完成对数据空间的初始化,待创建和初始化完成后,向跨域仿真客户端发送完成响应;
步骤S209:跨域仿真客户端接收到完成响应之后,即可进行实际的仿真过程,仿真过程由跨域仿真客户端中的仿真引擎统一进行管理,逐时间步进行仿真;
步骤S210:仿真引擎将根据当前的时间步,分别调用本地仿真实例包装对象的相关函数,进行对应的时间步的仿真;
步骤S211:本地仿真实例包装对象相关函数被仿真引擎调用后,如果仿真引擎传入了参数,则会对参数进行转换和打包处理,使之符合远程服务调用框架客户端接口的要求,之后仿真实例包装对象的相关函数将使用处理后的参数调用远程服务调用框架客户端的接口函数,接口函数将向对应的仿真实例服务进程发送远程服务调用请求,并将参数传送到仿真实例服务进程上;
步骤S212:仿真实例服务进程接收到调用请求后,获取传递过来的参数,并根据请求调用的用户预先定义的处理逻辑,根据本地存储的数据以及传递过来的参数进行计算,计算完成之后,向跨域仿真客户端发送响应;
步骤S213:跨域仿真客户端收到响应后,仿真实例包装对象中的相关函数将继续之后的处理,如果从仿真实例服务进程返回了结果,还需要对结果进行解包和转换操作,使之符合跨域仿真客户端程序的要求;
步骤S214:重复步骤S210至步骤S213直到完成整个仿真过程;
步骤S215:待完成仿真过程之后,跨域仿真客户端将向所有仿真实例服务进程发送实例对象销毁请求,仿真实例服务进程收到相应的请求后,释放之前申请对应仿真实例对象的数据区,并向跨域仿真客户端发送释放完成响应;
步骤S216:跨域仿真客户端从监听的队列收到响应后,完成仿真;
步骤S217:在完成整个仿真过程后,如果用户需要释放云上的资源,可再次执行配置脚本,配置脚本将会根据之前记录的信息向云站点发送资源释放请求,云站点将会对相应的资源进行释放。
图4展示了本发明提出的一种基于云计算的跨域仿真方法的架构示意图。
本发明公开了一种基于云计算的跨域仿真方法,基于云计算技术,实现仿真计算在同一云站点和不同云站点之间的分布式运行,以及计算资源随计算需求变化而弹性可伸缩,支持不同仿真实例在云计算环境下的计算过程中的数据交换和通信协同,从而实现不同仿真实例在跨域云计算环境下的协同运行。
实施例三
如图5所示,本发明实施例提供一种基于消息中间件的跨域仿真方法,包括下述步骤:
步骤S301:利用消息中间件通信机制将不同的仿真引擎代码进行封装,使每个仿真引擎能够监听和使用不同的消息队列,得到不同仿真引擎可执行文件;
步骤S302:启动消息中间件服务器,并获取消息中间件服务器的IP地址及监听的端口号;
步骤S303:将消息中间件服务器的IP地址及端口号写入不同仿真引擎的配置文件中,将步骤S301中的仿真引擎可执行文件在不同的服务器上启动,得到仿真引擎服务进程,仿真引擎服务进程将会向消息中间件服务器注册其所需监听和使用的消息队列;
步骤S304:用户将消息中间件服务器的IP地址以及监听的端口号写入跨域仿真客户端的配置文件,启动跨域仿真客户端;
步骤S305:用户在跨域仿真客户端设置所需要的仿真方案,编辑完成并确认无误后即可启动仿真过程;
步骤S306:跨域仿真客户端读取配置文件,获取消息中间件服务器的IP地址及其监听的端口号,并向其注册所需监听和使用的消息队列;
步骤S307:跨域仿真客户端根据仿真方案,向各个仿真引擎服务进程监听的相应消息队列写入创建仿真实例对象和初始化请求消息,同时监听仿真引擎服务进程的消息响应队列;
步骤S308:各个仿真引擎服务进程从监听的消息队列获取创建仿真实例对象和初始化请求信息后,在其数据区中划分出用以保存相应的仿真实例对象的数据空间,并根据初始化请求消息中附带的初始化值完成对数据空间的初始化,待创建和初始化完成后,向消息响应队列写入响应消息;
步骤S309:跨域仿真客户端从消息响应队列中得到响应之后,即可进行实际的仿真过程,仿真过程由不同的仿真服务引擎管理,由跨域仿真客户端进行时间步的管理,逐时间步进行仿真;
步骤S310:跨域仿真客户端向第一个仿真引擎监听的消息队列写入时间步以及其他需要传递的数据;
步骤S311:第一个仿真引擎从监听的消息队列中收到请求后,进行本仿真引擎的仿真操作,待仿真操作完成后,根据实际的需要向其他的仿真引擎发送相关的时间步和相关数据,如果本仿真引擎需要确定其他仿真引擎必须完成相应的请求,则还需要监听其他仿真引擎对应的消息响应队列,只有收到响应之后才可继续执行;
步骤S312:其余仿真引擎收到请求后,进行实际的仿真操作,并在需要的情况下向其他引擎监听的消息队列或者跨域仿真客户端监听的消息队列写入对应的信息;
步骤S313:跨域仿真客户端从监听的消息队列收到仿真数据,并在主界面上显示;
步骤S314:重复步骤S310至步骤S313直到完成整个仿真过程;
步骤S315:待完成整个仿真过程后,跨域仿真客户端向各个仿真引擎监听的队列写入仿真实例对象销毁请求,仿真引擎接收到释放请求后,释放之前申请对应仿真实例对象的数据区,并向跨域仿真客户端监听的队列写入释放完成响应;
步骤S316:跨域仿真客户端从监听的队列收到响应后,完成仿真。
图6展示了本发明提出的一种基于消息中间件的跨域仿真方法的架构示意图。
本发明公开一种基于消息中间件的跨域仿真方法,针对跨域分布式环境下不同架构的仿真引擎在计算时需要采用点对点通信的方式进行仿真协同的场景,基于消息通信中间件机制实现不同仿真引擎间的服务注册和消息转发等功能。通过对多种消息通信协议的支持来满足仿真时不同的通信需要以及通过对事务性消息的支持满足仿真通信的可靠性要求。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
Claims (3)
1.一种远程调用服务框架的跨域仿真方法,其特征在于,包括:
步骤S101:将各个仿真实例的代码进行服务化封装,得到不同的仿真实例可执行文件,在配置文件中指定所述仿真实例可执行文件需要监听的端口号,并将得到的程序在不同的服务器上启动,得到不同的仿真实例服务进程;
步骤S102:将各个所述仿真实例服务进程对应的IP地址及其监听的端口号写入跨域仿真客户端配置文件,启动跨域仿真客户端;
步骤S103:用户在所述跨域仿真客户端设置仿真方案,编辑完成并确认无误后即可启动仿真过程;
步骤S104:所述跨域仿真客户端读取所述跨域仿真客户端配置文件,获得各个所述仿真实例服务进程的IP地址及其端口号,分别建立与各个仿真实例服务进程的链接;
步骤S105:所述跨域仿真客户端根据用户设定的所述仿真方案,在本地创建仿真实例包装对象,并向各个所述仿真实例服务进程发送创建仿真实例对象请求和实例初始化请求;
步骤S106:所述仿真实例服务进程接收到所述实例对象创建请求和所述实例初始化请求后,首先在其数据区中划分出用以保存相应的实例对象数据空间,并根据初始化请求中附带的初始化值完成对数据空间的初始化,待创建和初始化完成后,向所述跨域仿真客户端发送完成响应;
步骤S107:所述跨域仿真客户端接收到完成响应之后,即可进行实际的仿真过程,仿真过程由客户端中的仿真引擎统一进行管理,逐时间步进行仿真;
步骤S108:所述仿真引擎将根据当前的时间步,分别调用本地所述仿真实例包装对象的相关函数,进行对应的时间步的仿真;
步骤S109:本地所述仿真实例包装对象相关函数被仿真引擎调用后,如果所述仿真引擎传入了参数,则会对所述参数进行转换和打包处理,使之符合远程服务调用框架客户端接口的要求,所述仿真实例包装对象的相关函数将使用处理后的参数调用远程服务调用框架客户端接口函数,所述接口函数将向对应的仿真实例服务进程发送远程服务调用请求,并将参数传送到所述仿真实例服务进程上;
步骤S110:所述仿真实例服务进程接收到所述调用请求后,获取传递过来的参数,并根据请求调用用户预先定义的处理逻辑,根据本地存储的数据以及传递过来的参数进行计算,计算完成之后,向所述跨域仿真客户端发送响应;
步骤S111:所述跨域仿真客户端收到响应后,所述仿真实例包装对象相关函数将继续之后的处理,如果从所述仿真实例服务进程返回了结果,还需要对所述结果进行解包和转换操作,使之符合所述跨域仿真客户端程序的要求;
步骤S112:重复步骤S108至步骤S111,直到完成整个仿真过程;
步骤S113:待完成仿真过程之后,所述跨域仿真客户端将向所有所述仿真实例服务进程发送实例对象销毁请求,所述仿真实例服务进程收到相应的请求后,释放之前申请对应仿真实例的数据区,之后向所述跨域仿真客户端发送释放完成响应;
步骤S114:所述跨域仿真客户端收到响应后,完成仿真。
2.一种基于云计算的跨域仿真方法,其特征在于,包括以下步骤:
步骤S201:将各个仿真实例的代码进行服务化封装,得到不同仿真实例的可执行文件,并在配置文件上指定这些可执行文件需要监听的端口号,利用这些可执行文件在云上创建对应的仿真实例服务镜像;
步骤S202:用户根据所述仿真实例服务镜像的信息编写配置文件,并利用配置脚本对云上资源进行管理;
步骤S203:用户使用所述配置脚本启动命令,所述配置脚本读取所述配置文件,并指定的云站点上创建相应的仿真实例服务进程,并等待所有仿真实例服务进程完成启动;待所有所述仿真实例服务实例进程启动完成后,生成仿真客户端配置文件,所述跨域仿真客户端配置文件中包括:所有所述仿真实例服务进程的类别,公网IP地址,监听的端口信息;同时,所述配置脚本还将对已经创建的资源进行记录;
步骤S204:用户将所述跨域仿真客户端配置文件放置到仿真客户端指定路径,即可启动所述仿真客户端;
步骤S205:用户在所述跨域仿真客户端设置所需要的仿真方案,编辑完成并确认无误后即可启动仿真过程;
步骤S206:所述跨域仿真客户端读取所述跨域仿真客户端配置文件,获得各个所述仿真实例服务进程的IP地址及其端口号,之后分别建立与各个所述仿真实例服务进程的链接;
步骤S207:所述跨域仿真客户端根据所述仿真方案,在本地创建仿真实例包装对象,并向各个所述仿真实例服务进程发送创建仿真实例对象请求和实例对象初始化请求;
步骤S208:对应的所述仿真实例服务进程接收到所述仿真实例包装对象创建的所述仿真实例对象请求和所述实例对象初始化请求,在其数据区中划分出用以保存相应的实例对象数据空间,并根据所述实例对象初始化请求中附带的初始化值完成对数据空间的初始化,待创建和初始化完成后,向所述跨域仿真客户端发送完成响应;
步骤S209:所述跨域仿真客户端接收到完成响应之后,即可进行实际的仿真过程,仿真过程由所述跨域仿真客户端中的仿真引擎统一进行管理,逐时间步进行仿真;
步骤S210:所述仿真引擎将根据当前的时间步,分别调用本地所述仿真实例包装对象的相关函数,进行对应的时间步的仿真;
步骤S211:本地所述仿真实例包装对象相关函数被仿真引擎调用后,如果所述仿真引擎传入了参数,则会对所述参数进行转换和打包处理,使之符合远程服务调用框架客户端接口的要求,之后所述仿真实例包装对象的相关函数将使用处理后的参数调用远程服务调用框架客户端的接口函数,所述接口函数将向对应的所述仿真实例服务进程发送远程服务调用请求,并将所述参数传送到所述仿真实例服务进程上;
步骤S212:所述仿真实例服务进程接收到所述调用请求后,获取传递过来的所述参数,并根据请求调用的用户预先定义的处理逻辑,根据本地存储的数据以及传递过来的所述参数进行计算,计算完成之后,向所述跨域仿真客户端发送响应;
步骤S213:所述跨域仿真客户端收到响应后,所述仿真实例包装对象中的相关函数将继续之后的处理,如果从所述仿真实例服务进程返回了结果,还需要对所述结果进行解包和转换操作,使之符合所述跨域仿真客户端程序的要求;
步骤S214:重复步骤S210至步骤S213直到完成整个仿真过程;
步骤S215:待完成所述仿真过程之后,所述跨域仿真客户端将向所有所述仿真实例服务进程发送实例对象销毁请求,所述仿真实例服务进程收到相应的请求后,释放之前申请对应仿真实例对象的数据区,并向所述跨域仿真客户端发送释放完成响应;
步骤S216:所述跨域仿真客户端从监听的队列收到响应后,完成仿真;
步骤S217:在完成整个所述仿真过程后,如果用户需要释放云上的资源,可再次执行所述配置脚本,所述配置脚本将会根据之前记录的信息向云站点发送资源释放请求,云站点将会对相应的资源进行释放。
3.一种基于消息中间件的跨域仿真方法,其特征在于,包括以下步骤:
步骤S301:利用消息中间件通信机制将不同的仿真引擎代码进行封装,使每个所述仿真引擎能够监听和使用不同的消息队列,得到不同仿真引擎可执行文件;
步骤S302:启动消息中间件服务器,并获取所述消息中间件服务器的IP地址及监听的端口号;
步骤S303:将所述消息中间件服务器的IP地址及端口号写入不同所述仿真引擎的配置文件中,将步骤S301中的所述仿真引擎可执行文件在不同的服务器上启动,得到仿真引擎服务进程,所述仿真引擎服务进程将会向所述消息中间件服务器注册其所需监听和使用的消息队列;
步骤S304:用户将所述消息中间件服务器的IP地址以及监听的端口号写入跨域仿真客户端的配置文件,启动所述跨域仿真客户端;
步骤S305:用户在所述跨域仿真客户端设置所需要的仿真方案,编辑完成并确认无误后即可启动仿真过程;
步骤S306:所述跨域仿真客户端读取所述配置文件,获取所述消息中间件服务器的IP地址及其监听的端口号,并向其注册所需监听和使用的消息队列;
步骤S307:所述跨域仿真客户端根据所述仿真方案,向各个所述仿真引擎服务进程监听的相应消息队列写入创建仿真实例对象和初始化请求消息,同时监听所述仿真引擎服务进程的消息响应队列;
步骤S308:各个所述仿真引擎服务进程从监听的消息队列获取所述创建仿真实例对象和初始化请求信息后,在其数据区中划分出用以保存相应的所述仿真实例对象的数据空间,并根据所述初始化请求消息中附带的初始化值完成对数据空间的初始化,待创建和初始化完成后,向所述消息响应队列写入响应消息;
步骤S309:所述跨域仿真客户端从所述消息响应队列中得到响应之后,即可进行实际的仿真过程,所述仿真过程由不同的仿真服务引擎管理,由所述跨域仿真客户端进行时间步的管理,逐时间步进行仿真;
步骤S310:所述跨域仿真客户端向第一个所述仿真引擎监听的消息队列写入时间步以及其他需要传递的数据;
步骤S311:第一个所述仿真引擎从监听的所述消息队列中收到请求后,进行本仿真引擎的仿真操作,待仿真操作完成后,根据实际的需要向其他的所述仿真引擎发送相关的时间步和相关数据,如果本仿真引擎需要确定其他所述仿真引擎必须完成相应的请求,则还需要监听其他所述仿真引擎对应的所述消息响应队列,只有收到响应之后才可继续执行;
步骤S312:其余所述仿真引擎收到请求后,进行实际的仿真操作,并在需要的情况下向其他引擎监听的消息队列或者所述跨域仿真客户端监听的消息队列写入对应的信息;
步骤S313:所述跨域仿真客户端从监听的所述消息队列收到仿真数据,并在主界面上显示;
步骤S314:重复步骤S310至步骤S313直到完成整个仿真过程;
步骤S315:待完成整个仿真过程后,所述跨域仿真客户端向各个所述仿真引擎监听的队列写入仿真实例对象销毁请求,所述仿真引擎接收到释放请求后,释放之前申请对应仿真实例对象的数据区,并向所述跨域仿真客户端监听的队列写入释放完成响应;
步骤S316:所述跨域仿真客户端从监听的队列收到响应后,完成仿真。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111081470.1A CN113746683B (zh) | 2021-09-15 | 2021-09-15 | 跨域环境下的互连、互通和互操作仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111081470.1A CN113746683B (zh) | 2021-09-15 | 2021-09-15 | 跨域环境下的互连、互通和互操作仿真方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113746683A true CN113746683A (zh) | 2021-12-03 |
CN113746683B CN113746683B (zh) | 2022-09-06 |
Family
ID=78739108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111081470.1A Active CN113746683B (zh) | 2021-09-15 | 2021-09-15 | 跨域环境下的互连、互通和互操作仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113746683B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116010039A (zh) * | 2023-03-28 | 2023-04-25 | 交通运输部公路科学研究所 | 用于智能汽车多实体联合仿真的消息中间件集成方法 |
CN116755844A (zh) * | 2023-08-17 | 2023-09-15 | 北京世冠金洋科技发展有限公司 | 一种仿真引擎的数据处理方法、装置、设备及存储介质 |
CN117938863A (zh) * | 2024-03-21 | 2024-04-26 | 中国人民解放军国防科技大学 | 基于集群的联合仿真实现方法、***、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523249A (zh) * | 2011-11-24 | 2012-06-27 | 哈尔滨工业大学 | 基于Web的分布式远程仿真***及仿真方法 |
CN102622262A (zh) * | 2012-01-09 | 2012-08-01 | 华中科技大学 | 基于modelica建模语言的分布式实时交互仿真*** |
CN102662681A (zh) * | 2012-04-25 | 2012-09-12 | 清华大学 | 基于hla的分布式仿真通用支撑平台及其实现方法 |
US20120245918A1 (en) * | 2011-03-21 | 2012-09-27 | Amazon Technologies, Inc. | Remotely emulating computing devices |
CN104778320A (zh) * | 2015-04-13 | 2015-07-15 | 北京仿真中心 | 一种可配置的hla联邦成员构建方法及*** |
CN110991040A (zh) * | 2019-12-02 | 2020-04-10 | 北京仿真中心 | 一种复杂产品协同仿真环境构建方法 |
CN113051040A (zh) * | 2021-04-26 | 2021-06-29 | 中航机载***共性技术有限公司 | 一种异地远程分布式联合仿真方法 |
-
2021
- 2021-09-15 CN CN202111081470.1A patent/CN113746683B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120245918A1 (en) * | 2011-03-21 | 2012-09-27 | Amazon Technologies, Inc. | Remotely emulating computing devices |
CN102523249A (zh) * | 2011-11-24 | 2012-06-27 | 哈尔滨工业大学 | 基于Web的分布式远程仿真***及仿真方法 |
CN102622262A (zh) * | 2012-01-09 | 2012-08-01 | 华中科技大学 | 基于modelica建模语言的分布式实时交互仿真*** |
CN102662681A (zh) * | 2012-04-25 | 2012-09-12 | 清华大学 | 基于hla的分布式仿真通用支撑平台及其实现方法 |
CN104778320A (zh) * | 2015-04-13 | 2015-07-15 | 北京仿真中心 | 一种可配置的hla联邦成员构建方法及*** |
CN110991040A (zh) * | 2019-12-02 | 2020-04-10 | 北京仿真中心 | 一种复杂产品协同仿真环境构建方法 |
CN113051040A (zh) * | 2021-04-26 | 2021-06-29 | 中航机载***共性技术有限公司 | 一种异地远程分布式联合仿真方法 |
Non-Patent Citations (1)
Title |
---|
廖建锦等: "满足工作流执行时限的可抢占虚拟机实例配置和调度方法研究", 《计算机工程与科学》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116010039A (zh) * | 2023-03-28 | 2023-04-25 | 交通运输部公路科学研究所 | 用于智能汽车多实体联合仿真的消息中间件集成方法 |
CN116755844A (zh) * | 2023-08-17 | 2023-09-15 | 北京世冠金洋科技发展有限公司 | 一种仿真引擎的数据处理方法、装置、设备及存储介质 |
CN116755844B (zh) * | 2023-08-17 | 2023-11-24 | 北京世冠金洋科技发展有限公司 | 一种仿真引擎的数据处理方法、装置、设备及存储介质 |
CN117938863A (zh) * | 2024-03-21 | 2024-04-26 | 中国人民解放军国防科技大学 | 基于集群的联合仿真实现方法、***、设备及存储介质 |
CN117938863B (zh) * | 2024-03-21 | 2024-05-24 | 中国人民解放军国防科技大学 | 基于集群的联合仿真实现方法、***、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113746683B (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113746683B (zh) | 跨域环境下的互连、互通和互操作仿真方法 | |
CN110083455B (zh) | 图计算处理方法、装置、介质及电子设备 | |
CN107463434B (zh) | 一种分布式任务处理方法与设备 | |
CN102467411A (zh) | 一种工作流处理及工作流代理方法、装置和*** | |
CN112363857B (zh) | 微前端架构的应用***、同步方法、存储介质和设备 | |
CN112788112A (zh) | 设备健康管理微服务自动发布方法、装置和平台 | |
Magaia et al. | Development of mobile IoT solutions: approaches, architectures, and methodologies | |
CN114926163A (zh) | 资源跨链转移方法及装置 | |
CN106357654B (zh) | 远程过程调用方法、装置及通信*** | |
Zato et al. | Platform for building large-scale agent-based systems | |
CN112711625B (zh) | 一种双向自适应的多源异构大数据动态处理方法 | |
CN111898162B (zh) | 并行任务的执行方法和装置、存储介质及电子设备 | |
CN107395663B (zh) | 数据获取方法及装置 | |
CN106911784B (zh) | 一种执行异步事件的方法和装置 | |
CN105955790A (zh) | 数据处理方法及装置 | |
CN202798801U (zh) | 一种用于实现分布式数据交互的通用性通讯*** | |
CN110119269B (zh) | 控制任务对象的方法、装置、服务器及存储介质 | |
CN115202907A (zh) | 一种应用程序接口的运行方法、***、计算机设备及介质 | |
Hamerski et al. | Publish-subscribe programming for a NoC-based multiprocessor system-on-chip | |
CN115167985A (zh) | 一种虚拟化的算力提供方法及*** | |
CN101482816B (zh) | 中介软件桥接***及方法 | |
CN115378792B (zh) | 告警处理方法、装置及存储介质 | |
CN111599236A (zh) | 事故应急演练方法及装置 | |
CN114615521B (zh) | 视频处理方法和装置、计算机可读存储介质、电子设备 | |
Zhang et al. | RCC: A Distributed Data Streaming Software Library for Robot-Cloud Platforms |
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 |