基于内存黑板机制的仿真组件交互方法、装置和设备转让专利

申请号 : CN202310167257.5

文献号 : CN115858205B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曾云秀曾俊杰秦龙张琪胡越许凯艾川尹路珈黄鹤松尹全军

申请人 : 中国人民解放军国防科技大学

摘要 :

本申请涉及一种基于内存黑板机制的仿真组件交互方法、装置和设备。所述方法通过仿真实体或仿真组件对映射文件进行解析,获取得到属性和消息的映射机制,根据属性和消息的映射机制对不同仿真实体或仿真组件的属性和消息进行映射和注册声明,并在仿真循环过程中,通过预先构建的内存黑板实现仿真实体与仿真组件之间以及不同仿真组件之间的高效实时交互,提升了仿真系统的计算效率。

权利要求 :

1.一种基于内存黑板机制的仿真组件交互方法,其特征在于,所述方法包括:

根据仿真实体或仿真组件获取并解析映射文件,根据解析得到的属性和消息的映射机制向预先构建的内存黑板进行属性和消息的注册声明,声明所有仿真实体或仿真组件关注的共享属性以及需要发布和需要订阅的交互消息,并根据所述内存黑板存储所有声明信息;

在进行仿真循环时,根据任意一个仿真实体或仿真组件中的逻辑程序对该仿真实体或仿真组件进行属性更新,通过判断所述内存黑板中是否存在更新后的属性来进行新的共享属性的创建或共享属性值的更新,并根据所述内存黑板向与该仿真实体或仿真组件声明关注相同共享属性的其他仿真实体或仿真组件发送共享属性更新通知,根据所述共享属性更新通知读取所述内存黑板中更新的共享属性值进行仿真计算,生成交互消息;

将所述交互消息发送给所述内存黑板,所述内存黑板将所述交互消息压入消息队列,所述消息队列按照先进先出的机制将所述交互消息发送给声明需要订阅所述交互消息的仿真实体或仿真组件,并根据订阅所述交互消息的仿真实体或仿真组件对所述交互消息进行处理,完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互;

所述内存黑板包括数据存储区域和数据交互逻辑程序,所述数据存储区域包括属性共享存储区域和消息队列;所述数据交互逻辑程序包括消息交互程序和属性读写程序,所述消息交互程序包括消息声明注册接口、消息发送接口以及消息接收接口,所述属性读写程序包括属性声明注册接口、属性更新接口、属性读取接口以及属性删除接口。

2.根据权利要求1所述的方法,其特征在于,在完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互之后,还包括:对所述内存黑板中完成共享的共享属性进行删除,释放内存黑板的内存空间。

3.根据权利要求2所述的方法,其特征在于,根据解析得到的属性和消息的映射机制向预先构建的内存黑板进行属性和消息的注册声明,声明所有仿真实体或仿真组件关注的共享属性以及需要发布和需要订阅的交互消息,并根据所述内存黑板存储所有声明信息,包括:根据解析得到的属性映射机制将不同仿真实体或仿真组件中的属性映射为共享属性,并通过所述内存黑板中的属性声明注册接口对所有仿真实体或仿真组件进行属性注册声明,声明仿真实体或仿真组件关注的共享属性,并根据所述内存黑板中的属性共享存储区域存储所有仿真实体或仿真组件声明关注的共享属性;

根据解析得到的消息映射机制将不同仿真实体或仿真组件中的交互消息映射为需要发布和需要订阅的交互消息,并通过所述内存黑板中的消息声明注册接口对所有仿真实体或仿真组件进行消息注册声明,声明仿真实体或仿真组件需要发布和需要订阅的交互消息,并根据所述内存黑板中的消息队列存储所有仿真实体或仿真组件声明需要发布和声明需要订阅的交互消息。

4.根据权利要求3所述的方法,其特征在于,通过判断所述内存黑板中是否存在更新后的属性来进行新的共享属性的创建或共享属性值的更新,包括:当所述更新后的属性在所述内存黑板中不存在时,根据所述内存黑板中的属性更新接口创建新的共享属性,并创建新的内存区域存储新的共享属性;

当所述更新后的属性在所述内存黑板中存在时,根据所述属性更新接口对所述内存黑板中的共享属性值进行更新,得到更新的共享属性值。

5.根据权利要求4所述的方法,其特征在于,根据所述内存黑板向与该仿真实体或仿真组件声明关注相同共享属性的其他仿真实体或仿真组件发送共享属性更新通知,根据所述共享属性更新通知读取所述内存黑板中更新的共享属性值进行仿真计算,生成交互消息,包括:根据所述内存黑板向与该仿真实体或仿真组件声明关注相同共享属性的其他仿真实体或仿真组件发送共享属性更新通知,根据所述共享属性更新通知获取更新的共享属性的ID,通过将仿真实体或仿真组件的ID以及更新的共享属性的ID输入所述内存黑板中的属性读取接口查找读取更新的共享属性值,并根据所述更新的共享属性值进行仿真计算,生成交互消息。

6.根据权利要求5所述的方法,其特征在于,将所述交互消息发送给所述内存黑板,所述内存黑板将所述交互消息压入消息队列,所述消息队列按照先进先出的机制将所述交互消息发送给声明需要订阅所述交互消息的仿真实体或仿真组件,并根据订阅所述交互消息的仿真实体或仿真组件对所述交互消息进行处理,完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互,包括:通过内存黑板中的消息发送接口将所述交互消息输入内存黑板,内存黑板在接收到所述交互消息后,将所述交互消息压入消息队列;

所述消息队列按照先进先出的机制,通过所述内存黑板中的消息接收接口将所述交互消息发送给声明需要订阅所述交互消息的所有仿真实体或仿真组件,并根据订阅所述交互消息的仿真实体或仿真组件对所述交互消息进行处理,完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互。

7.根据权利要求6所述的方法,其特征在于,对所述内存黑板中完成共享的共享属性进行删除,释放内存黑板的内存空间,包括:根据所述内存黑板中的属性删除接口对完成共享的共享属性进行删除,释放内存黑板的内存空间。

8.一种基于内存黑板机制的仿真组件交互装置,其特征在于,所述装置包括:

仿真预处理模块,用于根据仿真实体或仿真组件获取并解析映射文件,根据解析得到的属性和消息的映射机制向预先构建的内存黑板进行属性和消息的注册声明,声明所有仿真实体或仿真组件关注的共享属性以及需要发布和需要订阅的交互消息,并根据所述内存黑板存储所有声明信息;

仿真循环模块,用于在进行仿真循环时,根据任意一个仿真实体或仿真组件中的逻辑程序对该仿真实体或仿真组件进行属性更新,通过判断所述内存黑板中是否存在更新后的属性来进行新的共享属性的创建或共享属性值的更新,并根据所述内存黑板向与该仿真实体或仿真组件声明关注相同共享属性的其他仿真实体或仿真组件发送共享属性更新通知,根据所述共享属性更新通知读取所述内存黑板中更新的共享属性值进行仿真计算,生成交互消息;将所述交互消息发送给所述内存黑板,所述内存黑板将所述交互消息压入消息队列,所述消息队列按照先进先出的机制将所述交互消息发送给声明需要订阅所述交互消息的仿真实体或仿真组件,并根据订阅所述交互消息的仿真实体或仿真组件对所述交互消息进行处理,完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互;

所述内存黑板包括数据存储区域和数据交互逻辑程序,所述数据存储区域包括属性共享存储区域和消息队列;所述数据交互逻辑程序包括消息交互程序和属性读写程序,所述消息交互程序包括消息声明注册接口、消息发送接口以及消息接收接口,所述属性读写程序包括属性声明注册接口、属性更新接口、属性读取接口以及属性删除接口。

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。

说明书 :

基于内存黑板机制的仿真组件交互方法、装置和设备

技术领域

[0001] 本申请涉及仿真技术领域,特别是涉及一种基于内存黑板机制的仿真组件交互方法、装置和设备。

背景技术

[0002] 基于组件化仿真建模技术是目前军事作战仿真主要的建模方式和手段,组件化仿真建模技术构建仿真实体和仿真组件,通过组件的组合和装配,形成仿真实体的功能。但是,由于不同仿真实体和仿真组件的属性或消息名称或类型不一致问题,完成组合的仿真组件之间及仿真组件与仿真实体之间存在的数据交互效率还有待进一步提高。

发明内容

[0003] 基于此,有必要针对上述技术问题,提供一种能够实现仿真实体与仿真组件之间以及不同仿真组件之间的高效实时交互的基于内存黑板机制的仿真组件交互方法、装置和设备。
[0004] 一种基于内存黑板机制的仿真组件交互方法,所述方法包括:
[0005] 根据仿真实体或仿真组件获取并解析映射文件,根据解析得到的属性和消息的映射机制向预先构建的内存黑板进行属性和消息的注册声明,声明所有仿真实体或仿真组件关注的共享属性以及需要发布和需要订阅的交互消息,并根据内存黑板存储所有声明信息;
[0006] 在进行仿真循环时,根据任意一个仿真实体或仿真组件中的逻辑程序对该仿真实体或仿真组件进行属性更新,通过判断内存黑板中是否存在更新后的属性来进行新的共享属性的创建或共享属性值的更新,并根据内存黑板向与该仿真实体或仿真组件声明关注相同共享属性的其他仿真实体或仿真组件发送共享属性更新通知,根据共享属性更新通知读取内存黑板中更新的共享属性值进行仿真计算,生成交互消息;
[0007] 将交互消息发送给内存黑板,内存黑板将交互消息压入消息队列,消息队列按照先进先出的机制将交互消息发送给声明需要订阅交互消息的仿真实体或仿真组件,并根据订阅交互消息的仿真实体或仿真组件对交互消息进行处理,完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互。
[0008] 在其中一个实施例中,在完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互之后,还包括:
[0009] 对内存黑板中完成共享的共享属性进行删除,释放内存黑板的内存空间。
[0010] 在其中一个实施例中,内存黑板包括数据存储区域和数据交互逻辑程序,数据存储区域包括属性共享存储区域和消息队列;数据交互逻辑程序包括消息交互程序和属性读写程序,消息交互程序包括消息声明注册接口、消息发送接口以及消息接收接口,属性读写程序包括属性声明注册接口、属性更新接口、属性读取接口以及属性删除接口。
[0011] 在其中一个实施例中,根据解析得到的属性和消息的映射机制向预先构建的内存黑板进行属性和消息的注册声明,声明所有仿真实体或仿真组件关注的共享属性以及需要发布和需要订阅的交互消息,并根据内存黑板存储所有声明信息,包括:
[0012] 根据解析得到的属性映射机制将不同仿真实体或仿真组件中的属性映射为共享属性,并通过内存黑板中的属性声明注册接口对所有仿真实体或仿真组件进行属性注册声明,声明仿真实体或仿真组件关注的共享属性,并根据内存黑板中的属性共享存储区域存储所有仿真实体或仿真组件声明关注的共享属性;
[0013] 根据解析得到的消息映射机制将不同仿真实体或仿真组件中的交互消息映射为需要发布和需要订阅的交互消息,并通过内存黑板中的消息声明注册接口对所有仿真实体或仿真组件进行消息注册声明,声明仿真实体或仿真组件需要发布和需要订阅的交互消息,并根据内存黑板中的消息队列存储所有仿真实体或仿真组件声明需要发布和声明需要订阅的交互消息。
[0014] 在其中一个实施例中,通过判断内存黑板中是否存在更新后的属性来进行新的共享属性的创建或共享属性值的更新,包括:
[0015] 当更新后的属性在内存黑板中不存在时,根据内存黑板中的属性更新接口创建新的共享属性,并创建新的内存区域存储新的共享属性;
[0016] 当更新后的属性在内存黑板中存在时,根据属性更新接口对内存黑板中的共享属性值进行更新,得到更新的共享属性值。
[0017] 在其中一个实施例中,根据内存黑板向与该仿真实体或仿真组件声明关注相同共享属性的其他仿真实体或仿真组件发送共享属性更新通知,根据共享属性更新通知读取内存黑板中更新的共享属性值进行仿真计算,生成交互消息,包括:
[0018] 根据内存黑板向与该仿真实体或仿真组件声明关注相同共享属性的其他仿真实体或仿真组件发送共享属性更新通知,根据共享属性更新通知获取更新的共享属性的ID,通过将仿真实体或仿真组件的ID以及更新的共享属性的ID输入内存黑板中的属性读取接口查找读取更新的共享属性值,并根据更新的共享属性值进行仿真计算,生成交互消息。
[0019] 在其中一个实施例中,将交互消息发送给内存黑板,内存黑板将交互消息压入消息队列,消息队列按照先进先出的机制将交互消息发送给声明需要订阅交互消息的仿真实体或仿真组件,并根据订阅交互消息的仿真实体或仿真组件对交互消息进行处理,完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互,包括:
[0020] 通过内存黑板中的消息发送接口将交互消息输入内存黑板,内存黑板在接收到交互消息后,将交互消息压入消息队列;
[0021] 消息队列按照先进先出的机制,通过内存黑板中的消息接收接口将交互消息发送给声明需要订阅交互消息的所有仿真实体或仿真组件,并根据订阅交互消息的仿真实体或仿真组件对交互消息进行处理,完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互。
[0022] 在其中一个实施例中,对内存黑板中完成共享的共享属性进行删除,释放内存黑板的内存空间,包括:
[0023] 根据内存黑板中的属性删除接口对完成共享的共享属性进行删除,释放内存黑板的内存空间。
[0024] 一种基于内存黑板机制的仿真组件交互装置,所述装置包括:
[0025] 仿真预处理模块,用于根据仿真实体或仿真组件获取并解析映射文件,根据解析得到的属性和消息的映射机制向预先构建的内存黑板进行属性和消息的注册声明,声明所有仿真实体或仿真组件关注的共享属性以及需要发布和需要订阅的交互消息,并根据内存黑板存储所有声明信息;
[0026] 仿真循环模块,用于在进行仿真循环时,根据任意一个仿真实体或仿真组件中的逻辑程序对该仿真实体或仿真组件进行属性更新,通过判断内存黑板中是否存在更新后的属性来进行新的共享属性的创建或共享属性值的更新,并根据内存黑板向与该仿真实体或仿真组件声明关注相同共享属性的其他仿真实体或仿真组件发送共享属性更新通知,根据共享属性更新通知读取内存黑板中更新的共享属性值进行仿真计算,生成交互消息;将交互消息发送给内存黑板,内存黑板将交互消息压入消息队列,消息队列按照先进先出的机制将交互消息发送给声明需要订阅交互消息的仿真实体或仿真组件,并根据订阅交互消息的仿真实体或仿真组件对交互消息进行处理,完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互。
[0027] 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0028] 根据仿真实体或仿真组件获取并解析映射文件,根据解析得到的属性和消息的映射机制向预先构建的内存黑板进行属性和消息的注册声明,声明所有仿真实体或仿真组件关注的共享属性以及需要发布和需要订阅的交互消息,并根据内存黑板存储所有声明信息;
[0029] 在进行仿真循环时,根据任意一个仿真实体或仿真组件中的逻辑程序对该仿真实体或仿真组件进行属性更新,通过判断内存黑板中是否存在更新后的属性来进行新的共享属性的创建或共享属性值的更新,并根据内存黑板向与该仿真实体或仿真组件声明关注相同共享属性的其他仿真实体或仿真组件发送共享属性更新通知,根据共享属性更新通知读取内存黑板中更新的共享属性值进行仿真计算,生成交互消息;
[0030] 将交互消息发送给内存黑板,内存黑板将交互消息压入消息队列,消息队列按照先进先出的机制将交互消息发送给声明需要订阅交互消息的仿真实体或仿真组件,并根据订阅交互消息的仿真实体或仿真组件对交互消息进行处理,完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互。
[0031] 上述基于内存黑板机制的仿真组件交互方法、装置和设备,通过仿真实体或仿真组件解析映射文件获取得到属性和消息的映射机制,根据属性和消息的映射机制对不同仿真实体或仿真组件的属性和消息进行映射和注册声明,并在仿真循环过程中,通过预先构建的内存黑板实现仿真实体与仿真组件之间以及不同仿真组件之间的高效实时交互,提升了仿真系统的计算效率。

附图说明

[0032] 图1为一个实施例中基于内存黑板机制的仿真组件交互方法的流程示意图;
[0033] 图2为一个实施例中内存黑板的内部结构图;
[0034] 图3为一个实施例中属性映射机制示意图;
[0035] 图4为一个实施例中消息映射机制示意图;
[0036] 图5为一个实施例中计算机设备的内部结构图。

具体实施方式

[0037] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0038] 在一个实施例中,如图1所示,提供了一种基于内存黑板机制的仿真组件交互方法,包括以下步骤:
[0039] 首先,根据仿真实体或仿真组件获取并解析映射文件,根据解析得到的属性和消息的映射机制向预先构建的内存黑板进行属性和消息的注册声明,声明所有仿真实体或仿真组件关注的共享属性以及需要发布和需要订阅的交互消息,并根据内存黑板中创建的属性共享存储区域存储所有声明信息。
[0040] 然后,在进行仿真循环时,根据任意一个仿真实体或仿真组件中的逻辑程序对该仿真实体或仿真组件进行属性更新,通过判断内存黑板中是否存在更新后的属性来进行新的共享属性的创建或共享属性值的更新,并根据内存黑板向与该仿真实体或仿真组件声明关注相同共享属性的其他仿真实体或仿真组件发送共享属性更新通知,根据共享属性更新通知读取内存黑板中更新的共享属性值进行仿真计算,生成交互消息。
[0041] 再将交互消息发送给内存黑板,内存黑板将交互消息压入消息队列,消息队列按照先进先出的机制将交互消息发送给声明需要订阅交互消息的仿真实体或仿真组件,并根据订阅交互消息的仿真实体或仿真组件对交互消息进行处理,完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互。
[0042] 最后,在完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互之后,即仿真结束之后,对内存黑板中完成共享的共享属性进行删除,释放内存黑板的内存空间。
[0043] 其中,预先构建的内存黑板如图2所示,包括内存黑板包括数据存储区域和数据交互逻辑程序,数据存储区域包括属性共享存储区域和消息队列;数据交互逻辑程序包括消息交互程序和属性读写程序,消息交互程序包括消息声明注册接口、消息发送接口以及消息接收接口,属性读写程序包括属性声明注册接口、属性更新接口、属性读取接口以及属性删除接口。
[0044] 在一个具体的实施例中,基于内存黑板机制的仿真组件交互方法的具体步骤包括:
[0045] (1)、根据仿真实体或仿真组件获取并解析映射文件,解析得到属性映射机制和消息映射机制。
[0046] (2)、根据解析得到的属性和消息的映射机制向预先构建的内存黑板进行属性和消息的注册声明,声明所有仿真实体或仿真组件关注的共享属性以及需要发布和需要订阅的交互消息,并根据内存黑板存储所有声明信息。具体地,首先根据解析得到的属性映射机制将不同仿真实体或仿真组件中的属性映射为共享属性,并通过内存黑板中的属性声明注册接口对所有仿真实体或仿真组件进行属性注册声明,声明仿真实体或仿真组件关注的共享属性,并根据内存黑板中的属性共享存储区域存储所有仿真实体或仿真组件声明关注的共享属性。具体的属性映射机制如图3所示,实体中的属性1与其他属性可以映射为属性A,组件1和组件2中的属性1可以映射为共享属性B,组件2与实体中的属性2可以映射为共享属性C。
[0047] 然后根据解析得到的消息映射机制将不同仿真实体或仿真组件中的交互消息映射为需要发布和需要订阅的交互消息,并通过内存黑板中的消息声明注册接口对所有仿真实体或仿真组件进行消息注册声明,声明仿真实体或仿真组件需要发布和需要订阅的交互消息,并根据内存黑板中的消息队列存储所有仿真实体或仿真组件声明需要发布和声明需要订阅的交互消息。具体的消息映射机制如图4所示,通过消息队列将不同仿真实体或仿真组件中的交互消息映射为需要发布的交互信息和需要订阅的交互消息。可以理解,映射机制实现仿真实体和仿真组件不同含义的属性和消息进行映射,并且要求映射的属性之间和消息之间具有相同的数据结构,或者可通过数据类型转换实现具有相同的数据结构。
[0048] (3)、进行仿真循环,根据任意一个仿真实体或仿真组件中的逻辑程序对该仿真实体或仿真组件进行属性更新,通过判断内存黑板中是否存在更新后的属性来进行新的共享属性的创建或共享属性值的更新。具体地,当更新后的属性在内存黑板中不存在时,根据内存黑板中的属性更新接口创建新的共享属性,并创建新的内存区域存储新的共享属性;当更新后的属性在内存黑板中存在时,根据属性更新接口对内存黑板中的共享属性值进行更新,得到更新的共享属性值。
[0049] (4)、根据内存黑板向与该仿真实体或仿真组件声明关注相同共享属性的其他仿真实体或仿真组件发送共享属性更新通知。
[0050] (5)、声明关注相同共享属性的其他仿真实体或仿真组件根据共享属性更新通知获取更新的共享属性的ID,通过将仿真实体或仿真组件的ID以及更新的共享属性的ID输入内存黑板中的属性读取接口查找读取更新的共享属性值,并根据更新的共享属性值进行仿真计算,生成交互消息。
[0051] (6)、在生成交互消息后,通过内存黑板中的消息发送接口将交互消息输入内存黑板。
[0052] (7)、内存黑板在接收到交互消息后,将交互消息压入消息队列,同时消息队列按照先进先出的机制,通过内存黑板中的消息接收接口将交互消息发送给声明需要订阅交互消息的所有仿真实体或仿真组件。
[0053] (8)、根据订阅交互消息的仿真实体或仿真组件对交互消息进行处理,完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互。
[0054] (9)、仿真结束后,根据内存黑板中的属性删除接口对完成共享的共享属性进行删除,释放内存黑板的内存空间。
[0055] 应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0056] 在一个实施例中,提供了一种基于内存黑板机制的仿真组件交互装置,包括:仿真预处理模块和仿真循环模块,其中:
[0057] 仿真预处理模块,用于根据仿真实体或仿真组件获取并解析映射文件,根据解析得到的属性和消息的映射机制向预先构建的内存黑板进行属性和消息的注册声明,声明所有仿真实体或仿真组件关注的共享属性以及需要发布和需要订阅的交互消息,并根据内存黑板存储所有声明信息;
[0058] 仿真循环模块,用于在进行仿真循环时,根据任意一个仿真实体或仿真组件中的逻辑程序对该仿真实体或仿真组件进行属性更新,通过判断内存黑板中是否存在更新后的属性来进行新的共享属性的创建或共享属性值的更新,并根据内存黑板向与该仿真实体或仿真组件声明关注相同共享属性的其他仿真实体或仿真组件发送共享属性更新通知,根据共享属性更新通知读取内存黑板中更新的共享属性值进行仿真计算,生成交互消息;将交互消息发送给内存黑板,内存黑板将交互消息压入消息队列,消息队列按照先进先出的机制将交互消息发送给声明需要订阅交互消息的仿真实体或仿真组件,并根据订阅交互消息的仿真实体或仿真组件对交互消息进行处理,完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互。
[0059] 关于基于内存黑板机制的仿真组件交互装置的具体限定可以参见上文中对于基于内存黑板机制的仿真组件交互方法的限定,在此不再赘述。上述基于内存黑板机制的仿真组件交互装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0060] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储仿真数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于内存黑板机制的仿真组件交互方法。
[0061] 本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0062] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0063] 根据仿真实体或仿真组件获取并解析映射文件,根据解析得到的属性和消息的映射机制向预先构建的内存黑板进行属性和消息的注册声明,声明所有仿真实体或仿真组件关注的共享属性以及需要发布和需要订阅的交互消息,并根据内存黑板存储所有声明信息;
[0064] 在进行仿真循环时,根据任意一个仿真实体或仿真组件中的逻辑程序对该仿真实体或仿真组件进行属性更新,通过判断内存黑板中是否存在更新后的属性来进行新的共享属性的创建或共享属性值的更新,并根据内存黑板向与该仿真实体或仿真组件声明关注相同共享属性的其他仿真实体或仿真组件发送共享属性更新通知,根据共享属性更新通知读取内存黑板中更新的共享属性值进行仿真计算,生成交互消息;
[0065] 将交互消息发送给内存黑板,内存黑板将交互消息压入消息队列,消息队列按照先进先出的机制将交互消息发送给声明需要订阅交互消息的仿真实体或仿真组件,并根据订阅交互消息的仿真实体或仿真组件对交互消息进行处理,完成仿真实体与仿真组件之间以及不同仿真组件之间的消息交互。
[0066] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0067] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。